
<?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=KevinJ</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=KevinJ"/>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=Special:Contributions/KevinJ"/>
		<updated>2026-06-15T21:06:17Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.3</generator>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=Help:Contents&amp;diff=15131</id>
		<title>Help:Contents</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=Help:Contents&amp;diff=15131"/>
				<updated>2023-02-15T09:21:18Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===You are lost/disappointed and need help?===&lt;br /&gt;
&lt;br /&gt;
* Please first read the [[FAQ]].&lt;br /&gt;
* HowTo write articles for [[WritingRules | armadeus wiki]].&lt;br /&gt;
* There are some very interesting presentations about Linux usage in embedded context here: http://free-electrons.com&lt;br /&gt;
* You can send an email on the sourceforge mailing list: https://lists.sourceforge.net/lists/listinfo/armadeus-forum&lt;br /&gt;
* Public IRC channels where we talk together in the day, the evening and during the weekend: irc://irc.libera.chat/#Armadeus.&lt;br /&gt;
** (old irc channels was: irc://chat.freenode.net/#Armadeus)&lt;br /&gt;
** (old-old irc channels was : irc://irc.rezosup.org/#Armadeus and a second one irc://irc.rezosup.org/#Armadeus_eng)&lt;br /&gt;
** If you are searching an IRC client, [http://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients here is a complete list]. Chatzilla, Irssi, Mibbit and Quassel are good candidates.&lt;br /&gt;
* '''as last resort''', you can contact us directly:  '''support (at) armadeus (dot) com'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:FrenchFlag.png]]&lt;br /&gt;
&lt;br /&gt;
===Vous êtes perdus et avez besoin d'aide ?===&lt;br /&gt;
&lt;br /&gt;
* en premier lieu, lisez attentivement la [[Fr:FAQ|FAQ]]&lt;br /&gt;
* Il y a des présentations très intéressantes sur l'utilisation de Linux dans le domaine de l'embarqué ici: http://free-electrons.com&lt;br /&gt;
* vous pouvez envoyer un courriel sur la liste de diffusion ou les forums de SourceForge: https://lists.sourceforge.net/lists/listinfo/armadeus-forum&lt;br /&gt;
* nous avons 2 canaux IRC dédiés où nous discutons souvent le soir et/ou le WE: irc://chat.freenode.net/#Armadeus pour les francophones et irc://chat.freenode.net/#Armadeus_eng pour ceux qui speak english.&lt;br /&gt;
* Clients IRC testés:&lt;br /&gt;
** Linux: Chatzilla, Irssi, Quassel&lt;br /&gt;
** Web: [http://www.mibbit.com/ Mibbit]&lt;br /&gt;
** [http://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients La liste complète des clients IRC pour chaque plateforme]&lt;br /&gt;
* '''en dernier recours''', contactez nous directement par courriel: '''support (chez) armadeus (point) com'''&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://www.ircbeginner.com/ircinfo/ircc-commands.html Most used IRC commands]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS8MMDev&amp;diff=15089</id>
		<title>OPOS8MMDev</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS8MMDev&amp;diff=15089"/>
				<updated>2022-06-22T12:55:56Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Connectors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS8MM]]&lt;br /&gt;
&lt;br /&gt;
{{Under_Construction}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This is the Armadeus System's standard development board/baseboard for the [[OPOS8MM]] module.&lt;br /&gt;
&lt;br /&gt;
[[Image:OPOS8MM_Dev.png]]&lt;br /&gt;
&lt;br /&gt;
==Errata==&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet#OPOS8MMDev | Datasheet and schematics]]&lt;br /&gt;
* [http://www.opossom.com/english/products-development_boards-opos8mm_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;
* [[OneWire_GPIO_bus_Master|1-wire]]&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;
* [[I.MX6UL_internal_ADC|ADC]]&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 OPOS8MMDev&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! Linux GPIO or device !! i.MX8MM Mux config !! OPOS8MM Pin Name !! wiringPi N° !! RPi name !! Function !! JX Pin !! JX Pin !! Function !! RPi name !! wiringPi N° !! OPOS8MM Pin Name !! i.MX8MM Mux config !! Linux GPIO or device&lt;br /&gt;
|-&lt;br /&gt;
| - ||  || +3V3 || || || '''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''' || || || +5V || || -&lt;br /&gt;
|-&lt;br /&gt;
| /dev/i2c-? || || I2C4_SDA || || 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''' || || || +5V || || -&lt;br /&gt;
|-&lt;br /&gt;
| /dev/i2c-? || || I2C4_SCL || || 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''' || || || GND || || -&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_14 || 7 || GPIO7 || GPIO / AIN9 || 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 || || UART1_TX|| ||/dev/ttymxc?&lt;br /&gt;
|-&lt;br /&gt;
| || || GND || || || '''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 ||  || UART1_RX ||  || /dev/ttymxc?&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_4 || 0 || 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 / AIN8 || GPIO1 || || GPIO1_5 || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_1 || || 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''' || || || GND || || &lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_0 || || 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 || GPIO4 || 4 || UART1_RTS || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || GND || || || '''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 || GPIO5 || 5 || UART1_CTS || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || SPI1_MOSI|| || || 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''' || GND || || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || SPI1_MISO || || || 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 || GPIO6 || 6 || GPIO1_7 || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || SPI1_SCLK || || || 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''' || SPI_CS0 || || || SPI1_SS0 || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || GND || || || '''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''' || SPI_CS1 || || || GPIO1_6 || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || Not Used || || || 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 || || || Not Used|| ||&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_8 || || || 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''' || || || GND || ||  &lt;br /&gt;
|-&lt;br /&gt;
| || || GPIO1_11 || || || 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 || || || UART3_TXD || SNVS_TAMPER0__GPIO5_IO00 || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_13 || || || 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''' || || || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || Not Used|| || || 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 || || || UART3_RXD || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || Not Used|| || || 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 || || || Not Used ||  || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || GND|| || || '''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 / 1-Wire || || || Not Used ||  || gpio?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tested RPi shields/hats==&lt;br /&gt;
* [[Dragino Lora/GPS HAT]]&lt;br /&gt;
* [[PiTinfoV1.2 HAT]]&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;
===U-Boot===&lt;br /&gt;
* Use OPOS6ULDev &amp;quot;User&amp;quot; LED in U-Boot scripts:&lt;br /&gt;
** ON: &amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt; BIOS&amp;gt; gpio set 68 &amp;lt;/pre&amp;gt;&lt;br /&gt;
** OFF: &amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt; BIOS&amp;gt; gpio clear 68 &amp;lt;/pre&amp;gt;&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;
=Links=&lt;br /&gt;
* RaspberryPi is a registered trademark of RaspberryPi Foundation.&lt;br /&gt;
&lt;br /&gt;
[[Category:DevelopmentBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS8MMDev&amp;diff=15088</id>
		<title>OPOS8MMDev</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS8MMDev&amp;diff=15088"/>
				<updated>2022-06-22T12:52:18Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Connectors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS8MM]]&lt;br /&gt;
&lt;br /&gt;
{{Under_Construction}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This is the Armadeus System's standard development board/baseboard for the [[OPOS8MM]] module.&lt;br /&gt;
&lt;br /&gt;
[[Image:OPOS8MM_Dev.png]]&lt;br /&gt;
&lt;br /&gt;
==Errata==&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet#OPOS8MMDev | Datasheet and schematics]]&lt;br /&gt;
* [http://www.opossom.com/english/products-development_boards-opos8mm_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;
* [[OneWire_GPIO_bus_Master|1-wire]]&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;
* [[I.MX6UL_internal_ADC|ADC]]&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 OPOS8MMDev&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! Linux GPIO or device !! i.MX8MM Mux config !! OPOS8MM Pin Name !! wiringPi N° !! RPi name !! Function !! JX Pin !! JX Pin !! Function !! RPi name !! wiringPi N° !! OPOS8MM Pin Name !! i.MX8MM Mux config !! Linux GPIO or device&lt;br /&gt;
|-&lt;br /&gt;
| - ||  || +3V3 || || || '''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''' || || || +5V || || -&lt;br /&gt;
|-&lt;br /&gt;
| /dev/i2c-? || || I2C4_SDA || || 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''' || || || +5V || || -&lt;br /&gt;
|-&lt;br /&gt;
| /dev/i2c-? || || I2C4_SCL || || 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''' || || || GND || || -&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_14 || 7 || GPIO7 || GPIO / AIN9 || 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 || || UART1_TX|| ||/dev/ttymxc?&lt;br /&gt;
|-&lt;br /&gt;
| || || GND || || || '''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 ||  || UART1_RX ||  || /dev/ttymxc?&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_4 || 0 || 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 / AIN8 || GPIO1 || || GPIO1_5 || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_1 || || 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''' || || GND || || || &lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_0 || || 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 || GPIO4 || 4 || UART1_RTS || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || GND || || || '''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 || GPIO5 || 5 || UART1_CTS || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || SPI1_MOSI|| || || 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''' || GND || || ||  &lt;br /&gt;
|-&lt;br /&gt;
| || || SPI1_MISO || || || 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 || GPIO6 || 6 || GPIO1_7 || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || SPI1_SCLK || || || 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''' || SPI_CS0 || || || SPI1_SS0 || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || GND || || || '''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''' || SPI_CS1 || || || GPIO1_6 || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || Not Used || || || 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 || || || Not Used|| ||&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_8 || || || 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''' || || || GND || ||  &lt;br /&gt;
|-&lt;br /&gt;
| || || GPIO1_11 || || || 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 || || || UART3_TXD || SNVS_TAMPER0__GPIO5_IO00 || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_13 || || || 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''' || || || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || Not Used|| || || 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 || || || UART3_RXD || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || Not Used|| || || 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 || || || Not Used ||  || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || GND|| || || '''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 / 1-Wire || || || Not Used ||  || gpio?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tested RPi shields/hats==&lt;br /&gt;
* [[Dragino Lora/GPS HAT]]&lt;br /&gt;
* [[PiTinfoV1.2 HAT]]&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;
===U-Boot===&lt;br /&gt;
* Use OPOS6ULDev &amp;quot;User&amp;quot; LED in U-Boot scripts:&lt;br /&gt;
** ON: &amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt; BIOS&amp;gt; gpio set 68 &amp;lt;/pre&amp;gt;&lt;br /&gt;
** OFF: &amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt; BIOS&amp;gt; gpio clear 68 &amp;lt;/pre&amp;gt;&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;
=Links=&lt;br /&gt;
* RaspberryPi is a registered trademark of RaspberryPi Foundation.&lt;br /&gt;
&lt;br /&gt;
[[Category:DevelopmentBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS8MMDev&amp;diff=15087</id>
		<title>OPOS8MMDev</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS8MMDev&amp;diff=15087"/>
				<updated>2022-06-22T12:51:58Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Connectors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS8MM]]&lt;br /&gt;
&lt;br /&gt;
{{Under_Construction}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This is the Armadeus System's standard development board/baseboard for the [[OPOS8MM]] module.&lt;br /&gt;
&lt;br /&gt;
[[Image:OPOS8MM_Dev.png]]&lt;br /&gt;
&lt;br /&gt;
==Errata==&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet#OPOS8MMDev | Datasheet and schematics]]&lt;br /&gt;
* [http://www.opossom.com/english/products-development_boards-opos8mm_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;
* [[OneWire_GPIO_bus_Master|1-wire]]&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;
* [[I.MX6UL_internal_ADC|ADC]]&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 OPOS8MMDev&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! Linux GPIO or device !! i.MX8MM Mux config !! OPOS8MM Pin Name !! wiringPi N° !! RPi name !! Function !! JX Pin !! JX Pin !! Function !! RPi name !! wiringPi N° !! OPOS8MM Pin Name !! i.MX8MM Mux config !! Linux GPIO or device&lt;br /&gt;
|-&lt;br /&gt;
| - ||  || +3V3 || || || '''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''' || || || +5V || || -&lt;br /&gt;
|-&lt;br /&gt;
| /dev/i2c-? || || I2C4_SDA || || 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''' || || || +5V || || -&lt;br /&gt;
|-&lt;br /&gt;
| /dev/i2c-? || || I2C4_SCL || || 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''' || || || GND || || -&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_14 || 7 || GPIO7 || GPIO / AIN9 || 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 || || UART1_TX|| ||/dev/ttymxc?&lt;br /&gt;
|-&lt;br /&gt;
| || || GND || || || '''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 ||  || UART1_RX ||  || /dev/ttymxc?&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_4 || 0 || 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 / AIN8 || GPIO1 || || GPIO1_5 || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_1 || || 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''' || || GND || || || &lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_0 || || 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 || GPIO4 || 4 || UART1_RTS || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || GND || || || '''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 || GPIO5 || 5 || UART1_CTS || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || SPI1_MOSI|| || || 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''' || GND || || ||  &lt;br /&gt;
|-&lt;br /&gt;
| || || SPI1_MISO || || || 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 || GPIO6 || 6 || GPIO1_7 || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || SPI1_SCLK || || || 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''' || SPI_CS0 || || || SPI1_SS0 || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || GND || || || '''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''' || SPI_CS1 || || || GPIO1_6 || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || Not Used || || || 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 || || || Not Used|| ||&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_8 || || || 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''' || || || GND || ||  &lt;br /&gt;
|-&lt;br /&gt;
| || || GPIO1_11 || || || 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 || || || UART3_TXD || SNVS_TAMPER0__GPIO5_IO00 || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_13 || || || 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''' || || || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || Not Used|| || || 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 || || || UART3_RXD || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || Not Used|| || || 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 || || Not Used || ||  || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || GND|| || || '''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 / 1-Wire || || || Not Used ||  || gpio?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tested RPi shields/hats==&lt;br /&gt;
* [[Dragino Lora/GPS HAT]]&lt;br /&gt;
* [[PiTinfoV1.2 HAT]]&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;
===U-Boot===&lt;br /&gt;
* Use OPOS6ULDev &amp;quot;User&amp;quot; LED in U-Boot scripts:&lt;br /&gt;
** ON: &amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt; BIOS&amp;gt; gpio set 68 &amp;lt;/pre&amp;gt;&lt;br /&gt;
** OFF: &amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt; BIOS&amp;gt; gpio clear 68 &amp;lt;/pre&amp;gt;&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;
=Links=&lt;br /&gt;
* RaspberryPi is a registered trademark of RaspberryPi Foundation.&lt;br /&gt;
&lt;br /&gt;
[[Category:DevelopmentBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS8MMDev&amp;diff=15086</id>
		<title>OPOS8MMDev</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS8MMDev&amp;diff=15086"/>
				<updated>2022-06-22T12:41:43Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Connectors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS8MM]]&lt;br /&gt;
&lt;br /&gt;
{{Under_Construction}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This is the Armadeus System's standard development board/baseboard for the [[OPOS8MM]] module.&lt;br /&gt;
&lt;br /&gt;
[[Image:OPOS8MM_Dev.png]]&lt;br /&gt;
&lt;br /&gt;
==Errata==&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet#OPOS8MMDev | Datasheet and schematics]]&lt;br /&gt;
* [http://www.opossom.com/english/products-development_boards-opos8mm_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;
* [[OneWire_GPIO_bus_Master|1-wire]]&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;
* [[I.MX6UL_internal_ADC|ADC]]&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 OPOS8MMDev&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! Linux GPIO or device !! i.MX8MM Mux config !! OPOS8MM Pin Name !! wiringPi N° !! RPi name !! Function !! JX Pin !! JX Pin !! Function !! RPi name !! wiringPi N° !! OPOS8MM Pin Name !! i.MX8MM Mux config !! Linux GPIO or device&lt;br /&gt;
|-&lt;br /&gt;
| - ||  || +3V3 || || || '''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''' || || +5V || || || -&lt;br /&gt;
|-&lt;br /&gt;
| /dev/i2c-? || || I2C4_SDA || || 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''' || || +5V || || || -&lt;br /&gt;
|-&lt;br /&gt;
| /dev/i2c-? || || I2C4_SCL || || 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''' || || GND || || || -&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_14 || 7 || GPIO7 || GPIO / AIN9 || 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 || || UART1_TX|| ||/dev/ttymxc?&lt;br /&gt;
|-&lt;br /&gt;
| || || GND || || || '''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 ||  || UART1_RX ||  || /dev/ttymxc?&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_4 || 0 || 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 / AIN8 || GPIO1 || || GPIO1_5 || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_1 || || 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''' || || GND || || || &lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_0 || || 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 || GPIO4 || 4 || UART1_RTS || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || GND || || || '''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 || GPIO5 || 5 || UART1_CTS || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || SPI1_MOSI|| || || 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''' || GND || || ||  &lt;br /&gt;
|-&lt;br /&gt;
| || || SPI1_MISO || || || 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 || GPIO6 || 6 || GPIO1_7 || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || SPI1_SCLK || || || 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''' || SPI_CS0 || || || SPI1_SS0 || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || GND || || || '''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''' || SPI_CS1 || || || GPIO1_6 || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || Not Used || || || 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 || || || Not Used|| ||&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_8 || || || 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''' || || || GND || ||  &lt;br /&gt;
|-&lt;br /&gt;
| || || GPIO1_11 || || || 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 || || || UART3_TXD || SNVS_TAMPER0__GPIO5_IO00 || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1_13 || || || 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''' || || || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || Not Used|| || || 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 || || || UART3_RXD || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || Not Used|| || || 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 || || Not Used || ||  || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || GND|| || || '''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 / 1-Wire || || || Not Used ||  || gpio?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tested RPi shields/hats==&lt;br /&gt;
* [[Dragino Lora/GPS HAT]]&lt;br /&gt;
* [[PiTinfoV1.2 HAT]]&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;
===U-Boot===&lt;br /&gt;
* Use OPOS6ULDev &amp;quot;User&amp;quot; LED in U-Boot scripts:&lt;br /&gt;
** ON: &amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt; BIOS&amp;gt; gpio set 68 &amp;lt;/pre&amp;gt;&lt;br /&gt;
** OFF: &amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt; BIOS&amp;gt; gpio clear 68 &amp;lt;/pre&amp;gt;&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;
=Links=&lt;br /&gt;
* RaspberryPi is a registered trademark of RaspberryPi Foundation.&lt;br /&gt;
&lt;br /&gt;
[[Category:DevelopmentBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS8MMDev&amp;diff=15085</id>
		<title>OPOS8MMDev</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS8MMDev&amp;diff=15085"/>
				<updated>2022-06-22T12:31:58Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Connectors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS8MM]]&lt;br /&gt;
&lt;br /&gt;
{{Under_Construction}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This is the Armadeus System's standard development board/baseboard for the [[OPOS8MM]] module.&lt;br /&gt;
&lt;br /&gt;
[[Image:OPOS8MM_Dev.png]]&lt;br /&gt;
&lt;br /&gt;
==Errata==&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet#OPOS8MMDev | Datasheet and schematics]]&lt;br /&gt;
* [http://www.opossom.com/english/products-development_boards-opos8mm_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;
* [[OneWire_GPIO_bus_Master|1-wire]]&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;
* [[I.MX6UL_internal_ADC|ADC]]&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 OPOS8MMDev&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! Linux GPIO or device !! i.MX8MM Mux config !! OPOS8MM Pin Name !! wiringPi N° !! RPi name !! Function !! JX Pin !! JX Pin !! Function !! RPi name !! wiringPi N° !! OPOS8MM Pin Name !! i.MX8MM Mux config !! Linux GPIO or device&lt;br /&gt;
|-&lt;br /&gt;
| - ||  || +3V3 || || || '''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''' || || +5V || || || -&lt;br /&gt;
|-&lt;br /&gt;
| /dev/i2c-? || || I2C4_SDA || || 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''' || || +5V || || || -&lt;br /&gt;
|-&lt;br /&gt;
| /dev/i2c-? || || I2C4_SCL || || 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''' || || GND || || || -&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO14 || 7 || GPIO7 || GPIO / AIN9 || 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 || || UART1_TX|| ||/dev/ttymxc?&lt;br /&gt;
|-&lt;br /&gt;
| || || GND || || || '''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 ||  || UART1_RX ||  || /dev/ttymxc?&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO4 || 0 || 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 / AIN8 || GPIO1 || || GPIO5 || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO1 || || 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''' || || GND || || || &lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO0 || || 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 || GPIO4 || 4 || UART1_RTS || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || GND || || || '''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 || GPIO5 || 5 || UART1_CTS || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || SPI1_MOSI|| || || 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''' || GND || || ||  &lt;br /&gt;
|-&lt;br /&gt;
| || || SPI1_MISO || || || 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 || GPIO6 || 6 || GPIO7 || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || SPI1_SCLK || || || 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''' || SPI_CS0 || || || SPI1_SS0 || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || GND || || || '''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''' || SPI_CS1 || || || GPIO6 || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || Not Used || || || 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 || || || Not Used|| ||&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO8 || || || 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''' || || || GND || ||  &lt;br /&gt;
|-&lt;br /&gt;
| || || GPIO11 || || || 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 || || || GPIO5_26 || SNVS_TAMPER0__GPIO5_IO00 || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || GPIO13 || || || 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''' || || || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| gpio? || || Not Used|| || || 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 || || || GPIO5_27 || || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || Not Used|| || || 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 || || Not Used || ||  || gpio?&lt;br /&gt;
|-&lt;br /&gt;
| || || GND|| || || '''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 / 1-Wire || || || Not Used ||  || gpio?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tested RPi shields/hats==&lt;br /&gt;
* [[Dragino Lora/GPS HAT]]&lt;br /&gt;
* [[PiTinfoV1.2 HAT]]&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;
===U-Boot===&lt;br /&gt;
* Use OPOS6ULDev &amp;quot;User&amp;quot; LED in U-Boot scripts:&lt;br /&gt;
** ON: &amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt; BIOS&amp;gt; gpio set 68 &amp;lt;/pre&amp;gt;&lt;br /&gt;
** OFF: &amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt; BIOS&amp;gt; gpio clear 68 &amp;lt;/pre&amp;gt;&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;
=Links=&lt;br /&gt;
* RaspberryPi is a registered trademark of RaspberryPi Foundation.&lt;br /&gt;
&lt;br /&gt;
[[Category:DevelopmentBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=Armadeus_7.0_Troubleshots&amp;diff=15074</id>
		<title>Armadeus 7.0 Troubleshots</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=Armadeus_7.0_Troubleshots&amp;diff=15074"/>
				<updated>2022-03-31T16:00:58Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Ubuntu 18.04+ compilation issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==4.17 kernels random crashes==&lt;br /&gt;
* Due to NXP specifications changes, 4.17 kernel seems to have some problems when using CPU frequency scaling and/or i.MX6ULL at full speed (900MHz). Consequences are random kernel crashes with stack overflow/memory problems. For these reasons we recommend everyone using this kernel/release and i.MX6ULL to add a patch in ''patches/linux/4.17/''.&lt;br /&gt;
This patch can be found in latest git tree:&lt;br /&gt;
    https://sourceforge.net/p/armadeus/code/ci/master/tree/patches/linux/4.17/0112-ARM-dts-imx6ull-update-vdd_soc-voltage-for-900MHz-op.patch&lt;br /&gt;
* Then we also recommend to de-activate CPU frequency scaling on i.MX6ULL and fix operating frequency (to put somewhere in your app starting script, here frequency is fixed to 900MHz):&lt;br /&gt;
    cd /sys/devices/system/cpu/cpu0/cpufreq/&lt;br /&gt;
    echo userspace &amp;gt; scaling_governor&lt;br /&gt;
    echo 900000 &amp;gt; scaling_setspeed&lt;br /&gt;
&lt;br /&gt;
==Ubuntu 18.04+ compilation issues==&lt;br /&gt;
* When trying to build armadeus-7.0 on Ubuntu 18.04, you will encounter a lot of small compilation issues, that can be adressed manually, but we highly recommend to use more recent armadeus BSP versions on Ubuntu 18.04 to avoid these problems. (Or to build armadeus-7.0 with a 16.04 virtual machine).&lt;br /&gt;
&lt;br /&gt;
== Building Armadeus 7.0 with a Ubuntu 16.04 Docker image ==&lt;br /&gt;
docker build -t armadeus/ubuntu-16.04 -f ubuntu-16.04/Dockerfile .&lt;br /&gt;
docker run --rm -it -u 1000:1000 -v ~/armadeus-7.0-opos6ul:/app&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15010</id>
		<title>OPOS8MP PINOUT</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15010"/>
				<updated>2021-06-07T08:32:29Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* J3 connector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS8MP]]&lt;br /&gt;
[[Category: PINOUT]]&lt;br /&gt;
&lt;br /&gt;
= J3 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 1 || 120 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 2 || 119 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 4 || 117 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VDD_3V3 || 5 || 116 || SYS_RST_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || ||  || NVCC_SVNS_1V8 || 6 || 115 || UART2_RXD || UART2_RXD || GPIO5_24 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 7 || 114 || UART2_TXD || UART2_TXD || GPIO5_25 ||&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | Not available on OPOS8MP SoM with Bluetooth chip. || GPIO5_22 || UART1_RXD || UART1_RXD || 8 || 113 || UART4_RXD || UART4_RXD || GPIO5_28 || rowspan=&amp;quot;2&amp;quot; | Default debug UART in Armadeus BSP.&lt;br /&gt;
|-&lt;br /&gt;
|| GPIO5_23 || UART1_TXD || UART1_TXD || 9 || 112 || UART4_TXD || UART4_TXD || GPIO5_29&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_26 || UART3_RXD || UART3_RXD || 10 || 111 || I2C2_SDA || I2C2_SDA || GPIO5_17 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_27 || UART3_TXD || UART3_TXD || 11 || 110 || I2C2_SCL || I2C2_SCL || GPIO5_16 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_19 || I2C3_SDA || I2C3_SDA || 12 || 109 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_18 || I2C3_SCL || I2C3_SCL || 13 || 108 || UART1_RTS || SAI2_RXD0 || GPIO4_23 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_21 || I2C4_SDA || I2C4_SDA || 14 || 107 || SAI2_RXFS || SAI2_RXFS || GPIO4_21 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_20 || I2C4_SCL || I2C4_SCL || 15 || 106 || SAI2_RXC || SAI2_RXC || GPIO4_22 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 16 || 105 || SAI2_TXD0 || SAI2_TXD0 || GPIO4_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_3 || SAI1_RXD1 || SAI1_RXD1 || 17 || 104 || UART1_CTS || SAI2_TXFS || GPIO4_24 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_2 || SAI1_RXD0 || SAI1_RXD0 || 18 || 103 || SAI2_TXC || SAI2_TXC || GPIO4_25 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_20 || SAI1_MCLK || SAI1_MCLK || 19 || 102 || SAI2_MCLK || SAI2_MCLK || GPIO4_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_18 || SAI1_TXD6 || SAI1_TXD6 || 20 || 101 || SAI3_RXD || SAI3_RXD || GPIO4_30 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_19 || SAI1_TXD7 || SAI1_TXD7 || 21 || 100 || SAI3_RXFS || SAI3_RXFS || GPIO4_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_24 || SAI5_RXD3 || SAI5_RXD3 || 22 || 99 || SAI3_RXC || SAI3_RXC || GPIO4_29 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_23 || SAI5_RXD2 || SAI5_RXD2 || 23 || 98 || SAI3_TXD || SAI3_TXD || GPIO5_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_22 || SAI5_RXD1 || SAI5_RXD1 || 24 || 97 || SAI3_TXFS || SAI3_TXFS || GPIO4_31 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_21 || SAI5_RXD0 || SAI5_RXD0 || 25 || 96 || SAI3_TXC || SAI3_TXC || GPIO5_0 || &lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_19 || SAI5_RXFS || SAI5_RXFS || 26 || 95 || SAI3_MCLK || SAI3_MCLK || GPIO5_2 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_20 || SAI5_RXC || SAI5_RXC || 27 || 94 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_25 || SAI5_MCLK || SAI5_MCLK || 28 || 93 || ECSPI2_SCLK || ECSPI2_SCLK || GPIO5_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_3 || SPDIF_TX || SPDIF_TX || 29 || 92 || ECSPI2_SS0 || ECSPI2_SS0 || GPIO5_13 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_4 || SPDIF_RX || SPDIF_RX || 30 || 91 || ECSPI2_MISO || ECSPI2_MISO || GPIO5_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_5 || SPDIF_EXT_CLK || SPDIF_EXT_CLK || 31 || 90 || ECSPI2_MOSI || ECSPI2_MOSI || GPIO5_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 32 || 89 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_6 || ECSPI1_SCLK || ECSPI1_SCLK || 33 || 88 || HDMI_TXC_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_9 || ECSPI1_SS0 || ECSPI1_SS0 || 34 || 87 || HDMI_TXC_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_8 || ECSPI1_MISO || ECSPI1_MISO || 35 || 86 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_7 || ECSPI1_MOSI || ECSPI1_MOSI || 36 || 85 || HDMI_TX0_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_12 || SD2_CD_B || SD2_CD_B || 37 || 84 || HDMI_TX0_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_15 || SD2_DATA0 || SD2_DATA0 || 38 || 83 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_16 || SD2_DATA1 || SD2_DATA1 || 39 || 82 || HDMI_TX1_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_14 || SD2_CMD || SD2_CMD || 40 || 81 || HDMI_TX1_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 41 || 80 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_13 || SD2_CLK || SD2_CLK || 42 || 79 || HDMI_CEC || HDMI_CEC || GPIO3_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 43 || 78 || HDMI_DDC_SCL || HDMI_DDC_SCL || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_18 || SD2_DATA3 || SD2_DATA3 || 44 || 77 || HDMI_DDC_SDA || HDMI_DDC_SDA || GPIO3_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_17 || SD2_DATA2 || SD2_DATA2 || 45 || 76 || HDMI_HPD || HDMI_HPD || GPIO3_29 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 46 || 75 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_A || 47 || 74 || ETH_TXRXP_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_A || 48 || 73 || ETH_TXRXM_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 49 || 72 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_B || 50 || 71 || ETH_TXRXP_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_B || 51 || 70 || ETH_TXRXM_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_C || 53 || 68 || ETH_TXRXP_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_C || 54 || 67 || ETH_TXRXM_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_D || 56 || 65 || ETH_TXRXP_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_D || 57 || 64 || ETH_TXRXM_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 58 || 63 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_ACTIVITY# || 59 || 62 || ETH_ACTIVITY# || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_LINK# || 60 || 61 || ETH_LINK# || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= J4 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_N || USB1_RX_N || 1 || 120 || GPIO1_IO15 || GPIO1_IO15 || GPIO1_15 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_P || USB1_RX_P || 2 || 119 || GPIO1_IO14 || GPIO1_IO14 || GPIO1_14 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || GPIO1_IO13 || GPIO1_IO13 || GPIO1_13 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_N || USB1_TX_N || 4 || 117 || GPIO1_IO12 || GPIO1_IO12 || GPIO1_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_P || USB1_TX_P || 5 || 116 || GPIO1_IO11 || GPIO1_IO11 || GPIO1_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 6 || 115 || GPIO1_IO10 || GPIO1_IO10 || GPIO1_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_N || USB2_RX_N || 7 || 114 || GPIO1_IO09 || GPIO1_IO09 || GPIO1_9 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_P || USB2_RX_P || 8 || 113 || GPIO1_IO08 || GPIO1_IO08 || GPIO1_8 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 9 || 112 || GPIO1_IO07 || GPIO1_IO07 || GPIO1_7 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_N || USB2_TX_N || 10 || 111 || GPIO1_IO06 || GPIO1_IO06 || GPIO1_6 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_P || USB2_TX_P || 11 || 110 || GPIO1_IO05 || GPIO1_IO05 || GPIO1_5 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 12 || 109 || GPIO1_IO04 || GPIO1_IO04 || GPIO1_4 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_N || PCIE_RX_N || 13 || 108 || GPIO1_IO01 || GPIO1_IO01 || GPIO1_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_P || PCIE_RX_P || 14 || 107 || GPIO1_IO00 || GPIO1_IO00 || GPIO1_0 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 15 || 106 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_N || PCIE_TX_N || 16 || 105 || USB1_ID || USB1_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_P || PCIE_TX_P || 17 || 104 || USB1_VBUS || USB1_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 18 || 103 || USB1_DN || USB1_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_N || PCIE_CLK_N || 19 || 102 || USB1_DP || USB1_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_P || PCIE_CLK_P || 20 || 101 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 21 || 100 || USB2_ID || USB2_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_P || DSI_DO_P || 22 || 99 || USB2_VBUS || USB2_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_N || DSI_DO_N || 23 || 98 || USB2_DN || USB2_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_P || DSI_D1_P || 24 || 97 || USB2_DP || USB2_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_N || DSI_D1_N || 25 || 96 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 26 || 95 || BOOT_MODE0 || BOOT_MODE0 || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_P || DSI_CLK_P || 27 || 94 || JTAG_TDO || JTAG_TDO || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_N || DSI_CLK_N || 28 || 93 || JTAG_TMS || JTAG_TMS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 29 || 92 || JTAG_TDI || JTAG_TDI || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_P || DSI_D2_P || 30 || 91 || JTAG_TCK || JTAG_TCK || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_N || DSI_D2_N || 31 || 90 || ONOFF || ONOFF || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_P || DSI_D3_P || 32 || 89 || PMIC_ON_REQ || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_N || DSI_D3_N || 33 || 38 || POR_B || POR_B ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 34 || 87 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_P || CSI2_D3_P || 35 || 86 || CSI1_D0_P || CSI1_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_N || CSI2_D3_N || 36 || 85 || CSI1_D0_N || CSI1_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_P || CSI2_D2_P || 37 || 84 || CSI1_D1_P || CSI1_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_N || CSI2_D2_N || 38 || 83 || CSI1_D1_N || CSI1_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 39 || 82 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_P || CSI2_CLK_P || 40 || 81 || CSI1_CLK_P || CSI1_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_N || CSI2_CLK_N || 41 || 80 || CSI1_CLK_N || CSI1_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 42 || 79 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_P || CSI2_D1_P || 43 || 78 || CSI1_D2_P || CSI1_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_N || CSI2_D1_N || 44 || 77 || CSI1_D2_N || CSI1_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_P || CSI2_D0_P || 45 || 76 || CSI1_D3_P || CSI1_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_N || CSI2_D0_N || 46 || 75 || CSI1_D3_N || CSI1_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 47 || 74 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_P || LVDS1_D0_P || 48 || 73 || LVDS0_D0_P || LVDS0_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_N || LVDS1_D0_N || 49 || 72 || LVDS0_D0_N || LVDS0_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_P || LVDS1_D1_P || 50 || 71 || LVDS0_D1_P || LVDS0_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_N || LVDS1_D1_N || 51 || 70 || LVDS0_D1_N || LVDS0_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_P || LVDS1_CLK_P || 53 || 68 || LVDS0_CLK_P || LVDS0_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_N || LVDS1_CLK_N || 54 || 67 || LVDS0_CLK_N || LVDS0_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_P || LVDS1_D2_P || 56 || 65 || LVDS0_D2_P || LVDS0_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_N || LVDS1_D2_N || 57 || 64 || LVDS0_D2_N || LVDS0_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_P || LVDS1_D3_P || 58 || 63 || LVDS0_D3_P || LVDS0_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_N || LVDS1_D3_N || 59 || 62 || LVDS0_D3_N || LVDS0_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 60 || 61 || GND || || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15009</id>
		<title>OPOS8MP PINOUT</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15009"/>
				<updated>2021-06-04T13:31:26Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* J3 connector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS8MP]]&lt;br /&gt;
[[Category: PINOUT]]&lt;br /&gt;
&lt;br /&gt;
= J3 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 1 || 120 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 2 || 119 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 4 || 117 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VDD_3V3 || 5 || 116 || SYS_RST_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || ||  || NVCC_SVNS_1V8 || 6 || 115 || UART2_RXD || UART2_RXD || GPIO5_24 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 7 || 114 || UART2_TXD || UART2_TXD || GPIO5_25 ||&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | Not available on OPOS8MP SoM with Bluetooth chip. || GPIO5_22 || UART1_RXD || UART1_RXD || 8 || 113 || UART4_RXD || UART4_RXD || GPIO5_28 || rowspan=&amp;quot;2&amp;quot; | Default debug UART in Armadeus BSP.&lt;br /&gt;
|-&lt;br /&gt;
|| GPIO5_23 || UART1_TXD || UART1_TXD || 9 || 112 || UART4_TXD || UART4_TXD || GPIO5_29&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_26 || UART3_RXD || UART3_RXD || 10 || 111 || I2C2_SDA || I2C2_SDA || GPIO5_17 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_27 || UART3_TXD || UART3_TXD || 11 || 110 || I2C2_SCL || I2C2_SCL || GPIO5_16 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_19 || I2C3_SDA || I2C3_SDA || 12 || 109 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_18 || I2C3_SCL || I2C3_SCL || 13 || 108 || UART1_RTS || SAI2_RXD0 || GPIO4_23 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_21 || I2C4_SDA || I2C4_SDA || 14 || 107 || SAI2_RXFS || SAI2_RXFS || GPIO4_21 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_20 || I2C4_SCL || I2C4_SCL || 15 || 106 || SAI2_RXC || SAI2_RXC || GPIO4_22 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 16 || 105 || SAI2_TXD0 || SAI2_TXD0 || GPIO4_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_3 || SAI1_RXD1 || SAI1_RXD1 || 17 || 104 || UART1_CTS || SAI2_TXFS || GPIO4_24 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_2 || SAI1_RXD0 || SAI1_RXD0 || 18 || 103 || SAI2_TXC || SAI2_TXC || GPIO4_25 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_20 || SAI1_MCLK || SAI1_MCLK || 19 || 102 || SAI2_MCLK || SAI2_MCLK || GPIO4_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_18 || SAI1_TXD6 || SAI1_TXD6 || 20 || 101 || SAI3_RXD || SAI3_RXD || GPIO4_30 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_19 || SAI1_TXD7 || SAI1_TXD7 || 21 || 100 || SAI3_RXFS || SAI3_RXFS || GPIO4_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_24 || SAI5_RXD3 || SAI5_RXD3 || 22 || 99 || SAI3_RXC || SAI3_RXC || GPIO4_29 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_23 || SAI5_RXD2 || SAI5_RXD2 || 23 || 98 || SAI3_TXD || SAI3_TXD || GPIO5_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_22 || SAI5_RXD1 || SAI5_RXD1 || 24 || 97 || SAI3_TXFS || SAI3_TXFS || GPIO4_31 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_21 || SAI5_RXD0 || SAI5_RXD0 || 25 || 96 || SAI3_TXC || SAI3_TXC || GPIO5_0 || &lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_19 || SAI5_RXFS || SAI5_RXFS || 26 || 95 || SAI3_MCLK || SAI3_MCLK || GPIO5_2 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_20 || SAI5_RXC || SAI5_RXC || 27 || 94 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_25 || SAI5_MCLK || SAI5_MCLK || 28 || 93 || ECSPI2_SCLK || ECSPI2_SCLK || GPIO5_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_3 || SPDIF_TX || SPDIF_TX || 29 || 92 || ECSPI2_SS0 || ECSPI2_SS0 || GPIO5_13 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_4 || SPDIF_RX || SPDIF_RX || 30 || 91 || ECSPI2_MISO || ECSPI2_MISO || GPIO5_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_5 || SPDIF_EXT_CLK || SPDIF_EXT_CLK || 31 || 90 || ECSPI2_MOSI || ECSPI2_MOSI || GPIO5_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 32 || 89 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_6 || ECSPI1_SCLK || ECSPI1_SCLK || 33 || 88 || HDMI_TXC_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_9 || ECSPI1_SS0 || ECSPI1_SS0 || 34 || 87 || HDMI_TXC_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_8 || ECSPI1_MISO || ECSPI1_MISO || 35 || 86 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_7 || ECSPI1_MOSI || ECSPI1_MOSI || 36 || 85 || HDMI_TX0_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_12 || SD2_CD_B || SD2_CD_B || 37 || 84 || HDMI_TX0_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_15 || SD2_DAT0 || SD2_DAT0 || 38 || 83 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_16 || SD2_DAT1 || SD2_DAT1 || 39 || 82 || HDMI_TX1_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_14 || SD2_CMD || SD2_CMD || 40 || 81 || HDMI_TX1_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 41 || 80 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_13 || SD2_CLK || SD2_CLK || 42 || 79 || HDMI_CEC || HDMI_CEC || GPIO3_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 43 || 78 || HDMI_DDC_SCL || HDMI_DDC_SCL || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_18 || SD2_DAT3 || SD2_DAT3 || 44 || 77 || HDMI_DDC_SDA || HDMI_DDC_SDA || GPIO3_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_17 || SD2_DAT2 || SD2_DAT2 || 45 || 76 || HDMI_HPD || HDMI_HPD || GPIO3_29 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 46 || 75 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_A || 47 || 74 || ETH_TXRXP_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_A || 48 || 73 || ETH_TXRXM_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 49 || 72 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_B || 50 || 71 || ETH_TXRXP_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_B || 51 || 70 || ETH_TXRXM_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_C || 53 || 68 || ETH_TXRXP_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_C || 54 || 67 || ETH_TXRXM_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_D || 56 || 65 || ETH_TXRXP_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_D || 57 || 64 || ETH_TXRXM_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 58 || 63 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_ACTIVITY# || 59 || 62 || ETH_ACTIVITY# || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_LINK# || 60 || 61 || ETH_LINK# || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= J4 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_N || USB1_RX_N || 1 || 120 || GPIO1_IO15 || GPIO1_IO15 || GPIO1_15 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_P || USB1_RX_P || 2 || 119 || GPIO1_IO14 || GPIO1_IO14 || GPIO1_14 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || GPIO1_IO13 || GPIO1_IO13 || GPIO1_13 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_N || USB1_TX_N || 4 || 117 || GPIO1_IO12 || GPIO1_IO12 || GPIO1_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_P || USB1_TX_P || 5 || 116 || GPIO1_IO11 || GPIO1_IO11 || GPIO1_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 6 || 115 || GPIO1_IO10 || GPIO1_IO10 || GPIO1_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_N || USB2_RX_N || 7 || 114 || GPIO1_IO09 || GPIO1_IO09 || GPIO1_9 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_P || USB2_RX_P || 8 || 113 || GPIO1_IO08 || GPIO1_IO08 || GPIO1_8 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 9 || 112 || GPIO1_IO07 || GPIO1_IO07 || GPIO1_7 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_N || USB2_TX_N || 10 || 111 || GPIO1_IO06 || GPIO1_IO06 || GPIO1_6 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_P || USB2_TX_P || 11 || 110 || GPIO1_IO05 || GPIO1_IO05 || GPIO1_5 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 12 || 109 || GPIO1_IO04 || GPIO1_IO04 || GPIO1_4 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_N || PCIE_RX_N || 13 || 108 || GPIO1_IO01 || GPIO1_IO01 || GPIO1_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_P || PCIE_RX_P || 14 || 107 || GPIO1_IO00 || GPIO1_IO00 || GPIO1_0 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 15 || 106 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_N || PCIE_TX_N || 16 || 105 || USB1_ID || USB1_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_P || PCIE_TX_P || 17 || 104 || USB1_VBUS || USB1_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 18 || 103 || USB1_DN || USB1_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_N || PCIE_CLK_N || 19 || 102 || USB1_DP || USB1_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_P || PCIE_CLK_P || 20 || 101 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 21 || 100 || USB2_ID || USB2_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_P || DSI_DO_P || 22 || 99 || USB2_VBUS || USB2_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_N || DSI_DO_N || 23 || 98 || USB2_DN || USB2_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_P || DSI_D1_P || 24 || 97 || USB2_DP || USB2_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_N || DSI_D1_N || 25 || 96 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 26 || 95 || BOOT_MODE0 || BOOT_MODE0 || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_P || DSI_CLK_P || 27 || 94 || JTAG_TDO || JTAG_TDO || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_N || DSI_CLK_N || 28 || 93 || JTAG_TMS || JTAG_TMS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 29 || 92 || JTAG_TDI || JTAG_TDI || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_P || DSI_D2_P || 30 || 91 || JTAG_TCK || JTAG_TCK || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_N || DSI_D2_N || 31 || 90 || ONOFF || ONOFF || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_P || DSI_D3_P || 32 || 89 || PMIC_ON_REQ || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_N || DSI_D3_N || 33 || 38 || POR_B || POR_B ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 34 || 87 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_P || CSI2_D3_P || 35 || 86 || CSI1_D0_P || CSI1_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_N || CSI2_D3_N || 36 || 85 || CSI1_D0_N || CSI1_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_P || CSI2_D2_P || 37 || 84 || CSI1_D1_P || CSI1_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_N || CSI2_D2_N || 38 || 83 || CSI1_D1_N || CSI1_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 39 || 82 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_P || CSI2_CLK_P || 40 || 81 || CSI1_CLK_P || CSI1_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_N || CSI2_CLK_N || 41 || 80 || CSI1_CLK_N || CSI1_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 42 || 79 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_P || CSI2_D1_P || 43 || 78 || CSI1_D2_P || CSI1_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_N || CSI2_D1_N || 44 || 77 || CSI1_D2_N || CSI1_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_P || CSI2_D0_P || 45 || 76 || CSI1_D3_P || CSI1_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_N || CSI2_D0_N || 46 || 75 || CSI1_D3_N || CSI1_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 47 || 74 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_P || LVDS1_D0_P || 48 || 73 || LVDS0_D0_P || LVDS0_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_N || LVDS1_D0_N || 49 || 72 || LVDS0_D0_N || LVDS0_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_P || LVDS1_D1_P || 50 || 71 || LVDS0_D1_P || LVDS0_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_N || LVDS1_D1_N || 51 || 70 || LVDS0_D1_N || LVDS0_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_P || LVDS1_CLK_P || 53 || 68 || LVDS0_CLK_P || LVDS0_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_N || LVDS1_CLK_N || 54 || 67 || LVDS0_CLK_N || LVDS0_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_P || LVDS1_D2_P || 56 || 65 || LVDS0_D2_P || LVDS0_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_N || LVDS1_D2_N || 57 || 64 || LVDS0_D2_N || LVDS0_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_P || LVDS1_D3_P || 58 || 63 || LVDS0_D3_P || LVDS0_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_N || LVDS1_D3_N || 59 || 62 || LVDS0_D3_N || LVDS0_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 60 || 61 || GND || || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15008</id>
		<title>OPOS8MP PINOUT</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15008"/>
				<updated>2021-06-04T13:28:12Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* J3 connector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS8MP]]&lt;br /&gt;
[[Category: PINOUT]]&lt;br /&gt;
&lt;br /&gt;
= J3 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 1 || 120 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 2 || 119 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 4 || 117 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VDD_3V3 || 5 || 116 || SYS_RST_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || ||  || NVCC_SVNS_1V8 || 6 || 115 || UART2_RXD || UART2_RXD || GPIO5_24 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 7 || 114 || UART2_TXD || UART2_TXD || GPIO5_25 ||&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | Not available on OPOS8MP SoM with Bluetooth chip. || GPIO5_22 || UART1_RXD || UART1_RXD || 8 || 113 || UART4_RXD || UART4_RXD || GPIO5_28 || rowspan=&amp;quot;2&amp;quot; | Default debug UART in Armadeus BSP.&lt;br /&gt;
|-&lt;br /&gt;
|| GPIO5_23 || UART1_TXD || UART1_TXD || 9 || 112 || UART4_TXD || UART4_TXD || GPIO5_29&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_26 || UART3_RXD || UART3_RXD || 10 || 111 || I2C2_SDA || I2C2_SDA || GPIO5_17 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_27 || UART3_TXD || UART3_TXD || 11 || 110 || I2C2_SCL || I2C2_SCL || GPIO5_16 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_19 || I2C3_SDA || I2C3_SDA || 12 || 109 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_18 || I2C3_SCL || I2C3_SCL || 13 || 108 || UART1_RTS || SAI2_RXD0 || GPIO4_23 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_21 || I2C4_SDA || I2C4_SDA || 14 || 107 || SAI2_RXFS || SAI2_RXFS || GPIO4_21 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_20 || I2C4_SCL || I2C4_SCL || 15 || 106 || SAI2_RXC || SAI2_RXC || GPIO4_22 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 16 || 105 || SAI2_TXD0 || SAI2_TXD0 || GPIO4_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_3 || SAI1_RXD1 || SAI1_RXD1 || 17 || 104 || UART1_CTS || SAI2_TXFS || GPIO4_24 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_2 || SAI1_RXD0 || SAI1_RXD0 || 18 || 103 || SAI2_TXC || SAI2_TXC || GPIO4_25 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_20 || SAI1_MCLK || SAI1_MCLK || 19 || 102 || SAI2_MCLK || SAI2_MCLK || GPIO4_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_18 || SAI1_TXD6 || SAI1_TXD6 || 20 || 101 || SAI3_RXD || SAI3_RXD || GPIO4_30 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_19 || SAI1_TXD7 || SAI1_TXD7 || 21 || 100 || SAI3_RXFS || SAI3_RXFS || GPIO4_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_24 || SAI5_RXD3 || SAI5_RXD3 || 22 || 99 || SAI3_RXC || SAI3_RXC || GPIO4_29 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_23 || SAI5_RXD2 || SAI5_RXD2 || 23 || 98 || SAI3_TXD || SAI3_TXD || GPIO5_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_22 || SAI5_RXD1 || SAI5_RXD1 || 24 || 97 || SAI3_TXFS || SAI3_TXFS || GPIO4_31 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_21 || SAI5_RXD0 || SAI5_RXD0 || 25 || 96 || SAI3_TXC || SAI3_TXC || GPIO5_0 || &lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_19 || SAI5_RXFS || SAI5_RXFS || 26 || 95 || SAI3_MCLK || SAI3_MCLK || GPIO5_2 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_20 || SAI5_RXC || SAI5_RXC || 27 || 94 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_25 || SAI5_MCLK || SAI5_MCLK || 28 || 93 || ECSPI2_SCLK || ECSPI2_SCLK || GPIO5_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_3 || SPDIF_TX || SPDIF_TX || 29 || 92 || ECSPI2_SS0 || ECSPI2_SS0 || GPIO5_13 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_4 || SPDIF_RX || SPDIF_RX || 30 || 91 || ECSPI2_MISO || ECSPI2_MISO || GPIO5_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_5 || SPDIF_EXT_CLK || SPDIF_EXT_CLK || 31 || 90 || ECSPI2_MOSI || ECSPI2_MOSI || GPIO5_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 32 || 89 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_6 || ECSPI1_SCLK || ECSPI1_SCLK || 33 || 88 || HDMI_TXC_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_9 || ECSPI1_SS0 || ECSPI1_SS0 || 34 || 87 || HDMI_TXC_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_8 || ECSPI1_MISO || ECSPI1_MISO || 35 || 86 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_7 || ECSPI1_MOSI || ECSPI1_MOSI || 36 || 85 || HDMI_TX0_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_12 || SD2_CD_B || SD2_CD_B || 37 || 84 || HDMI_TX0_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_15 || SD2_DAT0 || SD2_DAT0 || 38 || 83 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_16 || SD2_DAT1 || SD2_DAT1 || 39 || 82 || HDMI_TX1_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_14 || SD2_CMD || SD2_CMD || 40 || 81 || HDMI_TX1_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 41 || 80 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_13 || SD2_CLK || SD2_CLK || 42 || 79 || HDMI_CEC || HDMI_CEC || GPIO3_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 43 || 78 || HDMI_DDC_SCL || HDMI_DDC_SCL || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_18 || SD2_DAT3 || SD2_DAT3 || 44 || 77 || HDMI_DDC_SDA || HDMI_DDC_SDA || GPIO3_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_17 || SD2_DAT2 || SD2_DAT2 || 45 || 76 || HDMI_HPD || HDMI_HPD || GPIO3_29 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 46 || 75 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_A || 47 || 74 || ETH_TXRXP_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_A || 48 || 73 || ETH_TXRXM_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 49 || 72 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_B || 50 || 74 || ETH_TXRXP_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_B || 51 || 71 || ETH_TXRXM_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_C || 53 || 68 || ETH_TXRXP_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_C || 54 || 67 || ETH_TXRXM_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_D || 56 || 65 || ETH_TXRXP_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_D || 57 || 64 || ETH_TXRXM_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 58 || 63 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_ACTIVITY# || 59 || 62 || ETH_ACTIVITY# || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_LINK# || 60 || 61 || ETH_LINK# || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= J4 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_N || USB1_RX_N || 1 || 120 || GPIO1_IO15 || GPIO1_IO15 || GPIO1_15 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_P || USB1_RX_P || 2 || 119 || GPIO1_IO14 || GPIO1_IO14 || GPIO1_14 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || GPIO1_IO13 || GPIO1_IO13 || GPIO1_13 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_N || USB1_TX_N || 4 || 117 || GPIO1_IO12 || GPIO1_IO12 || GPIO1_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_P || USB1_TX_P || 5 || 116 || GPIO1_IO11 || GPIO1_IO11 || GPIO1_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 6 || 115 || GPIO1_IO10 || GPIO1_IO10 || GPIO1_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_N || USB2_RX_N || 7 || 114 || GPIO1_IO09 || GPIO1_IO09 || GPIO1_9 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_P || USB2_RX_P || 8 || 113 || GPIO1_IO08 || GPIO1_IO08 || GPIO1_8 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 9 || 112 || GPIO1_IO07 || GPIO1_IO07 || GPIO1_7 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_N || USB2_TX_N || 10 || 111 || GPIO1_IO06 || GPIO1_IO06 || GPIO1_6 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_P || USB2_TX_P || 11 || 110 || GPIO1_IO05 || GPIO1_IO05 || GPIO1_5 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 12 || 109 || GPIO1_IO04 || GPIO1_IO04 || GPIO1_4 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_N || PCIE_RX_N || 13 || 108 || GPIO1_IO01 || GPIO1_IO01 || GPIO1_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_P || PCIE_RX_P || 14 || 107 || GPIO1_IO00 || GPIO1_IO00 || GPIO1_0 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 15 || 106 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_N || PCIE_TX_N || 16 || 105 || USB1_ID || USB1_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_P || PCIE_TX_P || 17 || 104 || USB1_VBUS || USB1_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 18 || 103 || USB1_DN || USB1_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_N || PCIE_CLK_N || 19 || 102 || USB1_DP || USB1_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_P || PCIE_CLK_P || 20 || 101 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 21 || 100 || USB2_ID || USB2_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_P || DSI_DO_P || 22 || 99 || USB2_VBUS || USB2_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_N || DSI_DO_N || 23 || 98 || USB2_DN || USB2_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_P || DSI_D1_P || 24 || 97 || USB2_DP || USB2_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_N || DSI_D1_N || 25 || 96 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 26 || 95 || BOOT_MODE0 || BOOT_MODE0 || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_P || DSI_CLK_P || 27 || 94 || JTAG_TDO || JTAG_TDO || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_N || DSI_CLK_N || 28 || 93 || JTAG_TMS || JTAG_TMS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 29 || 92 || JTAG_TDI || JTAG_TDI || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_P || DSI_D2_P || 30 || 91 || JTAG_TCK || JTAG_TCK || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_N || DSI_D2_N || 31 || 90 || ONOFF || ONOFF || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_P || DSI_D3_P || 32 || 89 || PMIC_ON_REQ || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_N || DSI_D3_N || 33 || 38 || POR_B || POR_B ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 34 || 87 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_P || CSI2_D3_P || 35 || 86 || CSI1_D0_P || CSI1_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_N || CSI2_D3_N || 36 || 85 || CSI1_D0_N || CSI1_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_P || CSI2_D2_P || 37 || 84 || CSI1_D1_P || CSI1_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_N || CSI2_D2_N || 38 || 83 || CSI1_D1_N || CSI1_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 39 || 82 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_P || CSI2_CLK_P || 40 || 81 || CSI1_CLK_P || CSI1_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_N || CSI2_CLK_N || 41 || 80 || CSI1_CLK_N || CSI1_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 42 || 79 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_P || CSI2_D1_P || 43 || 78 || CSI1_D2_P || CSI1_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_N || CSI2_D1_N || 44 || 77 || CSI1_D2_N || CSI1_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_P || CSI2_D0_P || 45 || 76 || CSI1_D3_P || CSI1_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_N || CSI2_D0_N || 46 || 75 || CSI1_D3_N || CSI1_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 47 || 74 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_P || LVDS1_D0_P || 48 || 73 || LVDS0_D0_P || LVDS0_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_N || LVDS1_D0_N || 49 || 72 || LVDS0_D0_N || LVDS0_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_P || LVDS1_D1_P || 50 || 71 || LVDS0_D1_P || LVDS0_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_N || LVDS1_D1_N || 51 || 70 || LVDS0_D1_N || LVDS0_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_P || LVDS1_CLK_P || 53 || 68 || LVDS0_CLK_P || LVDS0_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_N || LVDS1_CLK_N || 54 || 67 || LVDS0_CLK_N || LVDS0_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_P || LVDS1_D2_P || 56 || 65 || LVDS0_D2_P || LVDS0_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_N || LVDS1_D2_N || 57 || 64 || LVDS0_D2_N || LVDS0_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_P || LVDS1_D3_P || 58 || 63 || LVDS0_D3_P || LVDS0_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_N || LVDS1_D3_N || 59 || 62 || LVDS0_D3_N || LVDS0_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 60 || 61 || GND || || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15007</id>
		<title>OPOS8MP PINOUT</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15007"/>
				<updated>2021-06-04T13:25:41Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* J3 connector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS8MP]]&lt;br /&gt;
[[Category: PINOUT]]&lt;br /&gt;
&lt;br /&gt;
= J3 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 1 || 120 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 2 || 119 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 4 || 117 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VDD_3V3 || 5 || 116 || SYS_RST_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || ||  || NVCC_SVNS_1V8 || 6 || 115 || UART2_RXD || UART2_RXD || GPIO5_24 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 7 || 114 || UART2_TXD || UART2_TXD || GPIO5_25 ||&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | Not available on OPOS8MP SoM with Bluetooth chip. || GPIO5_22 || UART1_RXD || UART1_RXD || 8 || 113 || UART4_RXD || UART4_RXD || GPIO5_28 || rowspan=&amp;quot;2&amp;quot; | Default debug UART in Armadeus BSP.&lt;br /&gt;
|-&lt;br /&gt;
|| GPIO5_23 || UART1_TXD || UART1_TXD || 9 || 112 || UART4_TXD || UART4_TXD || GPIO5_29&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_26 || UART3_RXD || UART3_RXD || 10 || 111 || I2C2_SDA || I2C2_SDA || GPIO5_17 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_27 || UART3_TXD || UART3_TXD || 11 || 110 || I2C2_SCL || I2C2_SCL || GPIO5_16 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_19 || I2C3_SDA || I2C3_SDA || 12 || 109 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_18 || I2C3_SCL || I2C3_SCL || 13 || 108 || UART1_RTS || SAI2_RXD0 || GPIO4_23 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_21 || I2C4_SDA || I2C4_SDA || 14 || 107 || SAI2_RXFS || SAI2_RXFS || GPIO4_21 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_20 || I2C4_SCL || I2C4_SCL || 15 || 106 || SAI2_RXC || SAI2_RXC || GPIO4_22 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 16 || 105 || SAI2_TXD0 || SAI2_TXD0 || GPIO4_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_3 || SAI1_RXD1 || SAI1_RXD1 || 17 || 104 || UART1_CTS || SAI2_TXFS || GPIO4_24 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_2 || SAI1_RXD0 || SAI1_RXD0 || 18 || 103 || SAI2_TXC || SAI2_TXC || GPIO4_25 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_20 || SAI1_MCLK || SAI1_MCLK || 19 || 102 || SAI2_MCLK || SAI2_MCLK || GPIO4_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_18 || SAI1_TXD6 || SAI1_TXD6 || 20 || 101 || SAI3_RXD || SAI3_RXD || GPIO4_30 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_19 || SAI1_TXD7 || SAI1_TXD7 || 21 || 100 || SAI3_RXFS || SAI3_RXFS || GPIO4_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_24 || SAI5_RXD3 || SAI5_RXD3 || 22 || 99 || SAI3_RXC || SAI3_RXC || GPIO4_29 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_23 || SAI5_RXD2 || SAI5_RXD2 || 23 || 98 || SAI3_TXD || SAI3_TXD || GPIO5_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_22 || SAI5_RXD1 || SAI5_RXD1 || 24 || 97 || SAI3_TXFS || SAI3_TXFS || GPIO4_31 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_21 || SAI5_RXD0 || SAI5_RXD0 || 25 || 96 || SAI3_TXC || SAI3_TXC || GPIO5_0 || &lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_19 || SAI5_RXFS || SAI5_RXFS || 26 || 95 || SAI3_MCLK || SAI3_MCLK || GPIO5_2 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_20 || SAI5_RXC || SAI5_RXC || 27 || 94 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_25 || SAI5_MCLK || SAI5_MCLK || 28 || 93 || ECSPI2_SCLK || ECSPI2_SCLK || GPIO5_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_3 || SPDIF_TX || SPDIF_TX || 29 || 92 || ECSPI2_SS0 || ECSPI2_SS0 || GPIO5_13 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_4 || SPDIF_RX || SPDIF_RX || 30 || 91 || ECSPI2_MISO || ECSPI2_MISO || GPIO5_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_5 || SPDIF_EXT_CLK || SPDIF_EXT_CLK || 31 || 90 || ECSPI2_MOSI || ECSPI2_MOSI || GPIO5_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 32 || 89 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_6 || ECSPI1_SCLK || ECSPI1_SCLK || 33 || 88 || HDMI_TXC_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_9 || ECSPI1_SS0 || ECSPI1_SS0 || 34 || 87 || HDMI_TXC_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_8 || ECSPI1_MISO || ECSPI1_MISO || 35 || 86 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_7 || ECSPI1_MOSI || ECSPI1_MOSI || 36 || 85 || HDMI_TX0_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_12 || SD2_CD_B || SD2_CD_B || 37 || 84 || HDMI_TX0_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_15 || SD2_DAT0 || SD2_DAT0 || 38 || 83 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_16 || SD2_DAT1 || SD2_DAT1 || 39 || 82 || HDMI_TX1_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_14 || SD2_CMD || SD2_CMD || 40 || 81 || HDMI_TX1_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 41 || 80 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_13 || SD2_CLK || SD2_CLK || 42 || 79 || HDMI_CEC || HDMI_CEC || GPIO3_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 43 || 78 || HDMI_DDC_SCL || HDMI_DDC_SCL || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_18 || SD2_DAT3 || SD2_DAT3 || 44 || 77 || HDMI_DDC_SDA || HDMI_DDC_SDA || GPIO3_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_17 || SD2_DAT2 || SD2_DAT2 || 45 || 76 || HDMI_HDP || HDMI_HDP || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 46 || 75 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_A || 47 || 74 || ETH_TXRXP_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_A || 48 || 73 || ETH_TXRXM_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 49 || 72 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_B || 50 || 74 || ETH_TXRXP_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_B || 51 || 71 || ETH_TXRXM_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_C || 53 || 68 || ETH_TXRXP_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_C || 54 || 67 || ETH_TXRXM_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_D || 56 || 65 || ETH_TXRXP_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_D || 57 || 64 || ETH_TXRXM_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 58 || 63 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_ACTIVITY# || 59 || 62 || ETH_ACTIVITY# || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_LINK# || 60 || 61 || ETH_LINK# || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= J4 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_N || USB1_RX_N || 1 || 120 || GPIO1_IO15 || GPIO1_IO15 || GPIO1_15 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_P || USB1_RX_P || 2 || 119 || GPIO1_IO14 || GPIO1_IO14 || GPIO1_14 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || GPIO1_IO13 || GPIO1_IO13 || GPIO1_13 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_N || USB1_TX_N || 4 || 117 || GPIO1_IO12 || GPIO1_IO12 || GPIO1_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_P || USB1_TX_P || 5 || 116 || GPIO1_IO11 || GPIO1_IO11 || GPIO1_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 6 || 115 || GPIO1_IO10 || GPIO1_IO10 || GPIO1_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_N || USB2_RX_N || 7 || 114 || GPIO1_IO09 || GPIO1_IO09 || GPIO1_9 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_P || USB2_RX_P || 8 || 113 || GPIO1_IO08 || GPIO1_IO08 || GPIO1_8 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 9 || 112 || GPIO1_IO07 || GPIO1_IO07 || GPIO1_7 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_N || USB2_TX_N || 10 || 111 || GPIO1_IO06 || GPIO1_IO06 || GPIO1_6 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_P || USB2_TX_P || 11 || 110 || GPIO1_IO05 || GPIO1_IO05 || GPIO1_5 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 12 || 109 || GPIO1_IO04 || GPIO1_IO04 || GPIO1_4 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_N || PCIE_RX_N || 13 || 108 || GPIO1_IO01 || GPIO1_IO01 || GPIO1_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_P || PCIE_RX_P || 14 || 107 || GPIO1_IO00 || GPIO1_IO00 || GPIO1_0 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 15 || 106 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_N || PCIE_TX_N || 16 || 105 || USB1_ID || USB1_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_P || PCIE_TX_P || 17 || 104 || USB1_VBUS || USB1_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 18 || 103 || USB1_DN || USB1_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_N || PCIE_CLK_N || 19 || 102 || USB1_DP || USB1_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_P || PCIE_CLK_P || 20 || 101 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 21 || 100 || USB2_ID || USB2_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_P || DSI_DO_P || 22 || 99 || USB2_VBUS || USB2_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_N || DSI_DO_N || 23 || 98 || USB2_DN || USB2_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_P || DSI_D1_P || 24 || 97 || USB2_DP || USB2_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_N || DSI_D1_N || 25 || 96 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 26 || 95 || BOOT_MODE0 || BOOT_MODE0 || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_P || DSI_CLK_P || 27 || 94 || JTAG_TDO || JTAG_TDO || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_N || DSI_CLK_N || 28 || 93 || JTAG_TMS || JTAG_TMS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 29 || 92 || JTAG_TDI || JTAG_TDI || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_P || DSI_D2_P || 30 || 91 || JTAG_TCK || JTAG_TCK || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_N || DSI_D2_N || 31 || 90 || ONOFF || ONOFF || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_P || DSI_D3_P || 32 || 89 || PMIC_ON_REQ || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_N || DSI_D3_N || 33 || 38 || POR_B || POR_B ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 34 || 87 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_P || CSI2_D3_P || 35 || 86 || CSI1_D0_P || CSI1_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_N || CSI2_D3_N || 36 || 85 || CSI1_D0_N || CSI1_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_P || CSI2_D2_P || 37 || 84 || CSI1_D1_P || CSI1_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_N || CSI2_D2_N || 38 || 83 || CSI1_D1_N || CSI1_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 39 || 82 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_P || CSI2_CLK_P || 40 || 81 || CSI1_CLK_P || CSI1_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_N || CSI2_CLK_N || 41 || 80 || CSI1_CLK_N || CSI1_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 42 || 79 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_P || CSI2_D1_P || 43 || 78 || CSI1_D2_P || CSI1_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_N || CSI2_D1_N || 44 || 77 || CSI1_D2_N || CSI1_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_P || CSI2_D0_P || 45 || 76 || CSI1_D3_P || CSI1_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_N || CSI2_D0_N || 46 || 75 || CSI1_D3_N || CSI1_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 47 || 74 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_P || LVDS1_D0_P || 48 || 73 || LVDS0_D0_P || LVDS0_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_N || LVDS1_D0_N || 49 || 72 || LVDS0_D0_N || LVDS0_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_P || LVDS1_D1_P || 50 || 71 || LVDS0_D1_P || LVDS0_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_N || LVDS1_D1_N || 51 || 70 || LVDS0_D1_N || LVDS0_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_P || LVDS1_CLK_P || 53 || 68 || LVDS0_CLK_P || LVDS0_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_N || LVDS1_CLK_N || 54 || 67 || LVDS0_CLK_N || LVDS0_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_P || LVDS1_D2_P || 56 || 65 || LVDS0_D2_P || LVDS0_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_N || LVDS1_D2_N || 57 || 64 || LVDS0_D2_N || LVDS0_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_P || LVDS1_D3_P || 58 || 63 || LVDS0_D3_P || LVDS0_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_N || LVDS1_D3_N || 59 || 62 || LVDS0_D3_N || LVDS0_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 60 || 61 || GND || || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15006</id>
		<title>OPOS8MP PINOUT</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15006"/>
				<updated>2021-06-04T13:22:12Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* J3 connector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS8MP]]&lt;br /&gt;
[[Category: PINOUT]]&lt;br /&gt;
&lt;br /&gt;
= J3 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 1 || 120 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 2 || 119 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 4 || 117 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VDD_3V3 || 5 || 116 || SYS_RST_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || ||  || NVCC_SVNS_1V8 || 6 || 115 || UART2_RXD || UART2_RXD || GPIO5_24 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 7 || 114 || UART2_TXD || UART2_TXD || GPIO5_25 ||&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | Not available on OPOS8MP SoM with Bluetooth chip. || GPIO5_22 || UART1_RXD || UART1_RXD || 8 || 113 || UART4_RXD || UART4_RXD || GPIO5_28 || rowspan=&amp;quot;2&amp;quot; | Default debug UART in Armadeus BSP.&lt;br /&gt;
|-&lt;br /&gt;
|| GPIO5_23 || UART1_TXD || UART1_TXD || 9 || 112 || UART4_TXD || UART4_TXD || GPIO5_29&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_26 || UART3_RXD || UART3_RXD || 10 || 111 || I2C2_SDA || I2C2_SDA || GPIO5_17 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_27 || UART3_TXD || UART3_TXD || 11 || 110 || I2C2_SCL || I2C2_SCL || GPIO5_16 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_19 || I2C3_SDA || I2C3_SDA || 12 || 109 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_18 || I2C3_SCL || I2C3_SCL || 13 || 108 || UART1_RTS || SAI2_RXD0 || GPIO4_23 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_21 || I2C4_SDA || I2C4_SDA || 14 || 107 || SAI2_RXFS || SAI2_RXFS || GPIO4_21 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_20 || I2C4_SCL || I2C4_SCL || 15 || 106 || SAI2_RXC || SAI2_RXC || GPIO4_22 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 16 || 105 || SAI2_TXD0 || SAI2_TXD0 || GPIO4_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_3 || SAI1_RXD1 || SAI1_RXD1 || 17 || 104 || UART1_CTS || SAI2_TXFS || GPIO4_24 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_2 || SAI1_RXD0 || SAI1_RXD0 || 18 || 103 || SAI2_TXC || SAI2_TXC || GPIO4_25 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_20 || SAI1_MCLK || SAI1_MCLK || 19 || 102 || SAI2_MCLK || SAI2_MCLK || GPIO4_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_18 || SAI1_TXD6 || SAI1_TXD6 || 20 || 101 || SAI3_RXD || SAI3_RXD || GPIO4_30 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_19 || SAI1_TXD7 || SAI1_TXD7 || 21 || 100 || SAI3_RXFS || SAI3_RXFS || GPIO4_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_24 || SAI5_RXD3 || SAI5_RXD3 || 22 || 99 || SAI3_RXC || SAI3_RXC || GPIO4_29 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_23 || SAI5_RXD2 || SAI5_RXD2 || 23 || 98 || SAI3_TXD || SAI3_TXD || GPIO5_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_22 || SAI5_RXD1 || SAI5_RXD1 || 24 || 97 || SAI3_TXFS || SAI3_TXFS || GPIO4_31 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_21 || SAI5_RXD0 || SAI5_RXD0 || 25 || 96 || SAI3_TXC || SAI3_TXC || GPIO5_0 || &lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_19 || SAI5_RXFS || SAI5_RXFS || 26 || 95 || SAI3_MCLK || SAI3_MCLK || GPIO5_2 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_20 || SAI5_RXC || SAI5_RXC || 27 || 94 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_25 || SAI5_MCLK || SAI5_MCLK || 28 || 93 || ECSPI2_SCLK || ECSPI2_SCLK || GPIO5_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_3 || SPDIF_TX || SPDIF_TX || 29 || 92 || ECSPI2_SS0 || ECSPI2_SCLK || GPIO5_13 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_4 || SPDIF_RX || SPDIF_RX || 30 || 91 || ECSPI2_MISO || ECSPI2_MISO || GPIO5_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_5 || SPDIF_EXT_CLK || SPDIF_EXT_CLK || 31 || 90 || ECSPI2_MOSI || ECSPI2_MOSI || GPIO5_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 32 || 89 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_6 || ECSPI1_SCLK || ECSPI1_SCLK || 33 || 88 || HDMI_TXC_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_9 || ECSPI1_SS0 || ECSPI1_SS0 || 34 || 87 || HDMI_TXC_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_8 || ECSPI1_MISO || ECSPI1_MISO || 35 || 86 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_7 || ECSPI1_MOSI || ECSPI1_MOSI || 36 || 85 || HDMI_TX0_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_12 || SD2_CD_B || SD2_CD_B || 37 || 84 || HDMI_TX0_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_15 || SD2_DAT0 || SD2_DAT0 || 38 || 83 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_16 || SD2_DAT1 || SD2_DAT1 || 39 || 82 || HDMI_TX1_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_14 || SD2_CMD || SD2_CMD || 40 || 81 || HDMI_TX1_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 41 || 80 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_13 || SD2_CLK || SD2_CLK || 42 || 79 || HDMI_CEC || HDMI_CEC || GPIO3_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 43 || 78 || HDMI_DDC_SCL || HDMI_DDC_SCL || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_18 || SD2_DAT3 || SD2_DAT3 || 44 || 77 || HDMI_DDC_SDA || HDMI_DDC_SDA || GPIO3_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_17 || SD2_DAT2 || SD2_DAT2 || 45 || 76 || HDMI_HDP || HDMI_HDP || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 46 || 75 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_A || 47 || 74 || ETH_TXRXP_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_A || 48 || 73 || ETH_TXRXM_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 49 || 72 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_B || 50 || 74 || ETH_TXRXP_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_B || 51 || 71 || ETH_TXRXM_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_C || 53 || 68 || ETH_TXRXP_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_C || 54 || 67 || ETH_TXRXM_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_D || 56 || 65 || ETH_TXRXP_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_D || 57 || 64 || ETH_TXRXM_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 58 || 63 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_ACTIVITY# || 59 || 62 || ETH_ACTIVITY# || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_LINK# || 60 || 61 || ETH_LINK# || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= J4 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_N || USB1_RX_N || 1 || 120 || GPIO1_IO15 || GPIO1_IO15 || GPIO1_15 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_P || USB1_RX_P || 2 || 119 || GPIO1_IO14 || GPIO1_IO14 || GPIO1_14 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || GPIO1_IO13 || GPIO1_IO13 || GPIO1_13 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_N || USB1_TX_N || 4 || 117 || GPIO1_IO12 || GPIO1_IO12 || GPIO1_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_P || USB1_TX_P || 5 || 116 || GPIO1_IO11 || GPIO1_IO11 || GPIO1_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 6 || 115 || GPIO1_IO10 || GPIO1_IO10 || GPIO1_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_N || USB2_RX_N || 7 || 114 || GPIO1_IO09 || GPIO1_IO09 || GPIO1_9 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_P || USB2_RX_P || 8 || 113 || GPIO1_IO08 || GPIO1_IO08 || GPIO1_8 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 9 || 112 || GPIO1_IO07 || GPIO1_IO07 || GPIO1_7 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_N || USB2_TX_N || 10 || 111 || GPIO1_IO06 || GPIO1_IO06 || GPIO1_6 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_P || USB2_TX_P || 11 || 110 || GPIO1_IO05 || GPIO1_IO05 || GPIO1_5 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 12 || 109 || GPIO1_IO04 || GPIO1_IO04 || GPIO1_4 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_N || PCIE_RX_N || 13 || 108 || GPIO1_IO01 || GPIO1_IO01 || GPIO1_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_P || PCIE_RX_P || 14 || 107 || GPIO1_IO00 || GPIO1_IO00 || GPIO1_0 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 15 || 106 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_N || PCIE_TX_N || 16 || 105 || USB1_ID || USB1_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_P || PCIE_TX_P || 17 || 104 || USB1_VBUS || USB1_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 18 || 103 || USB1_DN || USB1_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_N || PCIE_CLK_N || 19 || 102 || USB1_DP || USB1_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_P || PCIE_CLK_P || 20 || 101 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 21 || 100 || USB2_ID || USB2_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_P || DSI_DO_P || 22 || 99 || USB2_VBUS || USB2_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_N || DSI_DO_N || 23 || 98 || USB2_DN || USB2_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_P || DSI_D1_P || 24 || 97 || USB2_DP || USB2_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_N || DSI_D1_N || 25 || 96 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 26 || 95 || BOOT_MODE0 || BOOT_MODE0 || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_P || DSI_CLK_P || 27 || 94 || JTAG_TDO || JTAG_TDO || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_N || DSI_CLK_N || 28 || 93 || JTAG_TMS || JTAG_TMS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 29 || 92 || JTAG_TDI || JTAG_TDI || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_P || DSI_D2_P || 30 || 91 || JTAG_TCK || JTAG_TCK || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_N || DSI_D2_N || 31 || 90 || ONOFF || ONOFF || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_P || DSI_D3_P || 32 || 89 || PMIC_ON_REQ || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_N || DSI_D3_N || 33 || 38 || POR_B || POR_B ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 34 || 87 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_P || CSI2_D3_P || 35 || 86 || CSI1_D0_P || CSI1_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_N || CSI2_D3_N || 36 || 85 || CSI1_D0_N || CSI1_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_P || CSI2_D2_P || 37 || 84 || CSI1_D1_P || CSI1_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_N || CSI2_D2_N || 38 || 83 || CSI1_D1_N || CSI1_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 39 || 82 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_P || CSI2_CLK_P || 40 || 81 || CSI1_CLK_P || CSI1_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_N || CSI2_CLK_N || 41 || 80 || CSI1_CLK_N || CSI1_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 42 || 79 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_P || CSI2_D1_P || 43 || 78 || CSI1_D2_P || CSI1_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_N || CSI2_D1_N || 44 || 77 || CSI1_D2_N || CSI1_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_P || CSI2_D0_P || 45 || 76 || CSI1_D3_P || CSI1_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_N || CSI2_D0_N || 46 || 75 || CSI1_D3_N || CSI1_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 47 || 74 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_P || LVDS1_D0_P || 48 || 73 || LVDS0_D0_P || LVDS0_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_N || LVDS1_D0_N || 49 || 72 || LVDS0_D0_N || LVDS0_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_P || LVDS1_D1_P || 50 || 71 || LVDS0_D1_P || LVDS0_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_N || LVDS1_D1_N || 51 || 70 || LVDS0_D1_N || LVDS0_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_P || LVDS1_CLK_P || 53 || 68 || LVDS0_CLK_P || LVDS0_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_N || LVDS1_CLK_N || 54 || 67 || LVDS0_CLK_N || LVDS0_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_P || LVDS1_D2_P || 56 || 65 || LVDS0_D2_P || LVDS0_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_N || LVDS1_D2_N || 57 || 64 || LVDS0_D2_N || LVDS0_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_P || LVDS1_D3_P || 58 || 63 || LVDS0_D3_P || LVDS0_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_N || LVDS1_D3_N || 59 || 62 || LVDS0_D3_N || LVDS0_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 60 || 61 || GND || || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15005</id>
		<title>OPOS8MP PINOUT</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15005"/>
				<updated>2021-06-04T13:18:01Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* J3 connector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS8MP]]&lt;br /&gt;
[[Category: PINOUT]]&lt;br /&gt;
&lt;br /&gt;
= J3 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 1 || 120 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 2 || 119 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 4 || 117 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VDD_3V3 || 5 || 116 || SYS_RST_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || ||  || NVCC_SVNS_1V8 || 6 || 115 || UART2_RXD || UART2_RXD || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 7 || 114 || UART2_TXD || UART2_TXD || ||&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | Not available on OPOS8MP SoM with Bluetooth chip. || GPIO5_22 || UART1_RXD || UART1_RXD || 8 || 113 || UART4_RXD || UART4_RXD || GPIO5_28 || rowspan=&amp;quot;2&amp;quot; | Default debug UART in Armadeus BSP.&lt;br /&gt;
|-&lt;br /&gt;
|| GPIO5_23 || UART1_TXD || UART1_TXD || 9 || 112 || UART4_TXD || UART4_TXD || GPIO5_29&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_26 || UART3_RXD || UART3_RXD || 10 || 111 || I2C2_SDA || I2C2_SDA || GPIO5_17 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_27 || UART3_TXD || UART3_TXD || 11 || 110 || I2C2_SCL || I2C2_SCL || GPIO5_16 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_19 || I2C3_SDA || I2C3_SDA || 12 || 109 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_18 || I2C3_SCL || I2C3_SCL || 13 || 108 || UART1_RTS || SAI2_RXD0 || GPIO4_23 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_21 || I2C4_SDA || I2C4_SDA || 14 || 107 || SAI2_RXFS || SAI2_RXFS || GPIO4_21 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_20 || I2C4_SCL || I2C4_SCL || 15 || 106 || SAI2_RXC || SAI2_RXC || GPIO4_22 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 16 || 105 || SAI2_TXD0 || SAI2_TXD0 || GPIO4_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_3 || SAI1_RXD1 || SAI1_RXD1 || 17 || 104 || UART1_CTS || SAI2_TXFS || GPIO4_24 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_2 || SAI1_RXD0 || SAI1_RXD0 || 18 || 103 || SAI2_TXC || SAI2_TXC || GPIO4_25 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_20 || SAI1_MCLK || SAI1_MCLK || 19 || 102 || SAI2_MCLK || SAI2_MCLK || GPIO4_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_18 || SAI1_TXD6 || SAI1_TXD6 || 20 || 101 || SAI3_RXD || SAI3_RXD || GPIO4_30 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_19 || SAI1_TXD7 || SAI1_TXD7 || 21 || 100 || SAI3_RXFS || SAI3_RXFS || GPIO4_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_24 || SAI5_RXD3 || SAI5_RXD3 || 22 || 99 || SAI3_RXC || SAI3_RXC || GPIO4_29 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_23 || SAI5_RXD2 || SAI5_RXD2 || 23 || 98 || SAI3_TXD || SAI3_TXD || GPIO5_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_22 || SAI5_RXD1 || SAI5_RXD1 || 24 || 97 || SAI3_TXFS || SAI3_TXFS || GPIO4_31 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_21 || SAI5_RXD0 || SAI5_RXD0 || 25 || 96 || SAI3_TXC || SAI3_TXC || GPIO5_0 || &lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_19 || SAI5_RXFS || SAI5_RXFS || 26 || 95 || SAI3_MCLK || SAI3_MCLK || GPIO5_2 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_20 || SAI5_RXC || SAI5_RXC || 27 || 94 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_25 || SAI5_MCLK || SAI5_MCLK || 28 || 93 || ECSPI2_SCLK || ECSPI2_SCLK || GPIO5_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_3 || SPDIF_TX || SPDIF_TX || 29 || 92 || ECSPI2_SS0 || ECSPI2_SCLK || GPIO5_13 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_4 || SPDIF_RX || SPDIF_RX || 30 || 91 || ECSPI2_MISO || ECSPI2_MISO || GPIO5_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_5 || SPDIF_EXT_CLK || SPDIF_EXT_CLK || 31 || 90 || ECSPI2_MOSI || ECSPI2_MOSI || GPIO5_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 32 || 89 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_6 || ECSPI1_SCLK || ECSPI1_SCLK || 33 || 88 || HDMI_TXC_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_9 || ECSPI1_SS0 || ECSPI1_SS0 || 34 || 87 || HDMI_TXC_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_8 || ECSPI1_MISO || ECSPI1_MISO || 35 || 86 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_7 || ECSPI1_MOSI || ECSPI1_MOSI || 36 || 85 || HDMI_TX0_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_12 || SD2_CD_B || SD2_CD_B || 37 || 84 || HDMI_TX0_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_15 || SD2_DAT0 || SD2_DAT0 || 38 || 83 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_16 || SD2_DAT1 || SD2_DAT1 || 39 || 82 || HDMI_TX1_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_14 || SD2_CMD || SD2_CMD || 40 || 81 || HDMI_TX1_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 41 || 80 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_13 || SD2_CLK || SD2_CLK || 42 || 79 || HDMI_CEC || HDMI_CEC || GPIO3_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 43 || 78 || HDMI_DDC_SCL || HDMI_DDC_SCL || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_18 || SD2_DAT3 || SD2_DAT3 || 44 || 77 || HDMI_DDC_SDA || HDMI_DDC_SDA || GPIO3_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_17 || SD2_DAT2 || SD2_DAT2 || 45 || 76 || HDMI_HDP || HDMI_HDP || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 46 || 75 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_A || 47 || 74 || ETH_TXRXP_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_A || 48 || 73 || ETH_TXRXM_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 49 || 72 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_B || 50 || 74 || ETH_TXRXP_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_B || 51 || 71 || ETH_TXRXM_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_C || 53 || 68 || ETH_TXRXP_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_C || 54 || 67 || ETH_TXRXM_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_D || 56 || 65 || ETH_TXRXP_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_D || 57 || 64 || ETH_TXRXM_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 58 || 63 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_ACTIVITY# || 59 || 62 || ETH_ACTIVITY# || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_LINK# || 60 || 61 || ETH_LINK# || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= J4 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_N || USB1_RX_N || 1 || 120 || GPIO1_IO15 || GPIO1_IO15 || GPIO1_15 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_P || USB1_RX_P || 2 || 119 || GPIO1_IO14 || GPIO1_IO14 || GPIO1_14 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || GPIO1_IO13 || GPIO1_IO13 || GPIO1_13 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_N || USB1_TX_N || 4 || 117 || GPIO1_IO12 || GPIO1_IO12 || GPIO1_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_P || USB1_TX_P || 5 || 116 || GPIO1_IO11 || GPIO1_IO11 || GPIO1_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 6 || 115 || GPIO1_IO10 || GPIO1_IO10 || GPIO1_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_N || USB2_RX_N || 7 || 114 || GPIO1_IO09 || GPIO1_IO09 || GPIO1_9 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_P || USB2_RX_P || 8 || 113 || GPIO1_IO08 || GPIO1_IO08 || GPIO1_8 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 9 || 112 || GPIO1_IO07 || GPIO1_IO07 || GPIO1_7 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_N || USB2_TX_N || 10 || 111 || GPIO1_IO06 || GPIO1_IO06 || GPIO1_6 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_P || USB2_TX_P || 11 || 110 || GPIO1_IO05 || GPIO1_IO05 || GPIO1_5 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 12 || 109 || GPIO1_IO04 || GPIO1_IO04 || GPIO1_4 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_N || PCIE_RX_N || 13 || 108 || GPIO1_IO01 || GPIO1_IO01 || GPIO1_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_P || PCIE_RX_P || 14 || 107 || GPIO1_IO00 || GPIO1_IO00 || GPIO1_0 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 15 || 106 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_N || PCIE_TX_N || 16 || 105 || USB1_ID || USB1_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_P || PCIE_TX_P || 17 || 104 || USB1_VBUS || USB1_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 18 || 103 || USB1_DN || USB1_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_N || PCIE_CLK_N || 19 || 102 || USB1_DP || USB1_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_P || PCIE_CLK_P || 20 || 101 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 21 || 100 || USB2_ID || USB2_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_P || DSI_DO_P || 22 || 99 || USB2_VBUS || USB2_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_N || DSI_DO_N || 23 || 98 || USB2_DN || USB2_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_P || DSI_D1_P || 24 || 97 || USB2_DP || USB2_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_N || DSI_D1_N || 25 || 96 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 26 || 95 || BOOT_MODE0 || BOOT_MODE0 || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_P || DSI_CLK_P || 27 || 94 || JTAG_TDO || JTAG_TDO || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_N || DSI_CLK_N || 28 || 93 || JTAG_TMS || JTAG_TMS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 29 || 92 || JTAG_TDI || JTAG_TDI || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_P || DSI_D2_P || 30 || 91 || JTAG_TCK || JTAG_TCK || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_N || DSI_D2_N || 31 || 90 || ONOFF || ONOFF || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_P || DSI_D3_P || 32 || 89 || PMIC_ON_REQ || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_N || DSI_D3_N || 33 || 38 || POR_B || POR_B ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 34 || 87 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_P || CSI2_D3_P || 35 || 86 || CSI1_D0_P || CSI1_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_N || CSI2_D3_N || 36 || 85 || CSI1_D0_N || CSI1_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_P || CSI2_D2_P || 37 || 84 || CSI1_D1_P || CSI1_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_N || CSI2_D2_N || 38 || 83 || CSI1_D1_N || CSI1_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 39 || 82 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_P || CSI2_CLK_P || 40 || 81 || CSI1_CLK_P || CSI1_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_N || CSI2_CLK_N || 41 || 80 || CSI1_CLK_N || CSI1_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 42 || 79 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_P || CSI2_D1_P || 43 || 78 || CSI1_D2_P || CSI1_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_N || CSI2_D1_N || 44 || 77 || CSI1_D2_N || CSI1_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_P || CSI2_D0_P || 45 || 76 || CSI1_D3_P || CSI1_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_N || CSI2_D0_N || 46 || 75 || CSI1_D3_N || CSI1_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 47 || 74 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_P || LVDS1_D0_P || 48 || 73 || LVDS0_D0_P || LVDS0_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_N || LVDS1_D0_N || 49 || 72 || LVDS0_D0_N || LVDS0_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_P || LVDS1_D1_P || 50 || 71 || LVDS0_D1_P || LVDS0_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_N || LVDS1_D1_N || 51 || 70 || LVDS0_D1_N || LVDS0_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_P || LVDS1_CLK_P || 53 || 68 || LVDS0_CLK_P || LVDS0_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_N || LVDS1_CLK_N || 54 || 67 || LVDS0_CLK_N || LVDS0_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_P || LVDS1_D2_P || 56 || 65 || LVDS0_D2_P || LVDS0_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_N || LVDS1_D2_N || 57 || 64 || LVDS0_D2_N || LVDS0_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_P || LVDS1_D3_P || 58 || 63 || LVDS0_D3_P || LVDS0_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_N || LVDS1_D3_N || 59 || 62 || LVDS0_D3_N || LVDS0_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 60 || 61 || GND || || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15004</id>
		<title>OPOS8MP PINOUT</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15004"/>
				<updated>2021-06-04T13:17:27Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* J3 connector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS8MP]]&lt;br /&gt;
[[Category: PINOUT]]&lt;br /&gt;
&lt;br /&gt;
= J3 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 1 || 120 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 2 || 119 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 4 || 117 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VDD_3V3 || 5 || 116 || SYS_RST_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || ||  || NVCC_SVNS_1V8 || 6 || 115 || UART2_RXD || UART2_RXD || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 7 || 114 || UART2_TXD || UART2_TXD || ||&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | Not available on OPOS8MP SoM with Bluetooth chip. || GPIO5_22 || UART1_RXD || UART1_RXD || 8 || 113 || UART4_RXD || UART4_RXD || GPIO5_28 || rowspan=&amp;quot;2&amp;quot; | Default debug UART in Armadeus BSP.&lt;br /&gt;
|-&lt;br /&gt;
|| GPIO5_23 || UART1_TXD || UART1_TXD || 9 || 112 || UART4_TXD || UART4_TXD || GPIO5_29&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_26 || UART3_RXD || UART3_RXD || 10 || 111 || I2C2_SDA || I2C2_SDA || GPIO5_17 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_27 || UART3_TXD || UART3_TXD || 11 || 110 || I2C2_SCL || I2C2_SCL || GPIO5_16 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_19 || I2C3_SDA || I2C3_SDA || 12 || 109 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_18 || I2C3_SCL || I2C3_SCL || 13 || 108 || UART1_RTS || SAI2_RXD0 || GPIO4_23 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_21 || I2C4_SDA || I2C4_SDA || 14 || 107 || SAI2_RXFS || SAI2_RXFS || GPIO4_21 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_20 || I2C4_SCL || I2C4_SCL || 15 || 106 || SAI2_RXC || SAI2_RXC || GPIO4_22 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 16 || 105 || SAI2_TXD0 || SAI2_TXD0 || GPIO4_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_3 || SAI1_RXD1 || SAI1_RXD1 || 17 || 104 || UART1_CTS || SAI2_TXFS || GPIO4_24 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_2 || SAI1_RXD0 || SAI1_RXD0 || 18 || 103 || SAI2_TXC || SAI2_TXC || GPIO4_25 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_20 || SAI1_MCLK || SAI1_MCLK || 19 || 102 || SAI2_MCLK || SAI2_MCLK || GPIO4_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_18 || SAI1_TXD6 || SAI1_TXD6 || 20 || 101 || SAI3_RXD || SAI3_RXD || GPIO4_30 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_19 || SAI1_TXD7 || SAI1_TXD7 || 21 || 100 || SAI3_RXFS || SAI3_RXFS || GPIO4_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_24 || SAI5_RXD3 || SAI5_RXD3 || 22 || 99 || SAI3_RXC || SAI3_RXC || GPIO4_29 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_23 || SAI5_RXD2 || SAI5_RXD2 || 23 || 98 || SAI3_TXD || SAI3_TXD || GPIO5_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_22 || SAI5_RXD1 || SAI5_RXD1 || 24 || 97 || SAI3_TXFS || SAI3_TXFS || GPIO4_31 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_21 || SAI5_RXD0 || SAI5_RXD0 || 25 || 96 || SAI3_TXC || SAI3_TXC || GPIO5_0 || &lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_19 || SAI5_RXFS || SAI5_RXFS || 26 || 95 || SAI3_MCLK || SAI3_MCLK || GPIO5_2 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_20 || SAI5_RXC || SAI5_RXC || 27 || 94 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_25 || SAI5_MCLK || SAI5_MCLK || 28 || 93 || ECSPI2_SCLK || ECSPI2_SCLK || GPIO5_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_3 || SPDIF_TX || SPDIF_TX || 29 || 92 || ECSPI2_SS0 || ECSPI2_SCLK || GPIO5_13 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_4 || SPDIF_RX || SPDIF_RX || 30 || 91 || ECSPI2_MISO || ECSPI2_MISO || GPIO5_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_5 || SPDIF_EXT_CLK || SPDIF_EXT_CLK || 31 || 90 || ECSPI2_MOSI || ECSPI2_MOSI || GPIO5_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 32 || 89 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_6 || ECSPI1_SCLK || ECSPI1_SCLK || 33 || 88 || HDMI_TXC_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_9 || ECSPI1_SS0 || ECSPI1_SS0 || 34 || 87 || HDMI_TXC_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_8 || ECSPI1_MISO || ECSPI1_MISO || 35 || 86 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_11 || ECSPI1_MOSI || ECSPI1_MOSI || 36 || 85 || HDMI_TX0_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_12 || SD2_CD_B || SD2_CD_B || 37 || 84 || HDMI_TX0_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_15 || SD2_DAT0 || SD2_DAT0 || 38 || 83 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_16 || SD2_DAT1 || SD2_DAT1 || 39 || 82 || HDMI_TX1_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_14 || SD2_CMD || SD2_CMD || 40 || 81 || HDMI_TX1_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 41 || 80 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_13 || SD2_CLK || SD2_CLK || 42 || 79 || HDMI_CEC || HDMI_CEC || GPIO3_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 43 || 78 || HDMI_DDC_SCL || HDMI_DDC_SCL || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_18 || SD2_DAT3 || SD2_DAT3 || 44 || 77 || HDMI_DDC_SDA || HDMI_DDC_SDA || GPIO3_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_17 || SD2_DAT2 || SD2_DAT2 || 45 || 76 || HDMI_HDP || HDMI_HDP || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 46 || 75 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_A || 47 || 74 || ETH_TXRXP_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_A || 48 || 73 || ETH_TXRXM_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 49 || 72 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_B || 50 || 74 || ETH_TXRXP_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_B || 51 || 71 || ETH_TXRXM_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_C || 53 || 68 || ETH_TXRXP_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_C || 54 || 67 || ETH_TXRXM_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_D || 56 || 65 || ETH_TXRXP_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_D || 57 || 64 || ETH_TXRXM_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 58 || 63 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_ACTIVITY# || 59 || 62 || ETH_ACTIVITY# || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_LINK# || 60 || 61 || ETH_LINK# || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= J4 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_N || USB1_RX_N || 1 || 120 || GPIO1_IO15 || GPIO1_IO15 || GPIO1_15 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_P || USB1_RX_P || 2 || 119 || GPIO1_IO14 || GPIO1_IO14 || GPIO1_14 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || GPIO1_IO13 || GPIO1_IO13 || GPIO1_13 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_N || USB1_TX_N || 4 || 117 || GPIO1_IO12 || GPIO1_IO12 || GPIO1_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_P || USB1_TX_P || 5 || 116 || GPIO1_IO11 || GPIO1_IO11 || GPIO1_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 6 || 115 || GPIO1_IO10 || GPIO1_IO10 || GPIO1_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_N || USB2_RX_N || 7 || 114 || GPIO1_IO09 || GPIO1_IO09 || GPIO1_9 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_P || USB2_RX_P || 8 || 113 || GPIO1_IO08 || GPIO1_IO08 || GPIO1_8 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 9 || 112 || GPIO1_IO07 || GPIO1_IO07 || GPIO1_7 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_N || USB2_TX_N || 10 || 111 || GPIO1_IO06 || GPIO1_IO06 || GPIO1_6 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_P || USB2_TX_P || 11 || 110 || GPIO1_IO05 || GPIO1_IO05 || GPIO1_5 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 12 || 109 || GPIO1_IO04 || GPIO1_IO04 || GPIO1_4 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_N || PCIE_RX_N || 13 || 108 || GPIO1_IO01 || GPIO1_IO01 || GPIO1_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_P || PCIE_RX_P || 14 || 107 || GPIO1_IO00 || GPIO1_IO00 || GPIO1_0 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 15 || 106 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_N || PCIE_TX_N || 16 || 105 || USB1_ID || USB1_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_P || PCIE_TX_P || 17 || 104 || USB1_VBUS || USB1_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 18 || 103 || USB1_DN || USB1_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_N || PCIE_CLK_N || 19 || 102 || USB1_DP || USB1_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_P || PCIE_CLK_P || 20 || 101 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 21 || 100 || USB2_ID || USB2_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_P || DSI_DO_P || 22 || 99 || USB2_VBUS || USB2_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_N || DSI_DO_N || 23 || 98 || USB2_DN || USB2_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_P || DSI_D1_P || 24 || 97 || USB2_DP || USB2_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_N || DSI_D1_N || 25 || 96 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 26 || 95 || BOOT_MODE0 || BOOT_MODE0 || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_P || DSI_CLK_P || 27 || 94 || JTAG_TDO || JTAG_TDO || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_N || DSI_CLK_N || 28 || 93 || JTAG_TMS || JTAG_TMS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 29 || 92 || JTAG_TDI || JTAG_TDI || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_P || DSI_D2_P || 30 || 91 || JTAG_TCK || JTAG_TCK || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_N || DSI_D2_N || 31 || 90 || ONOFF || ONOFF || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_P || DSI_D3_P || 32 || 89 || PMIC_ON_REQ || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_N || DSI_D3_N || 33 || 38 || POR_B || POR_B ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 34 || 87 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_P || CSI2_D3_P || 35 || 86 || CSI1_D0_P || CSI1_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_N || CSI2_D3_N || 36 || 85 || CSI1_D0_N || CSI1_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_P || CSI2_D2_P || 37 || 84 || CSI1_D1_P || CSI1_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_N || CSI2_D2_N || 38 || 83 || CSI1_D1_N || CSI1_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 39 || 82 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_P || CSI2_CLK_P || 40 || 81 || CSI1_CLK_P || CSI1_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_N || CSI2_CLK_N || 41 || 80 || CSI1_CLK_N || CSI1_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 42 || 79 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_P || CSI2_D1_P || 43 || 78 || CSI1_D2_P || CSI1_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_N || CSI2_D1_N || 44 || 77 || CSI1_D2_N || CSI1_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_P || CSI2_D0_P || 45 || 76 || CSI1_D3_P || CSI1_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_N || CSI2_D0_N || 46 || 75 || CSI1_D3_N || CSI1_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 47 || 74 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_P || LVDS1_D0_P || 48 || 73 || LVDS0_D0_P || LVDS0_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_N || LVDS1_D0_N || 49 || 72 || LVDS0_D0_N || LVDS0_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_P || LVDS1_D1_P || 50 || 71 || LVDS0_D1_P || LVDS0_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_N || LVDS1_D1_N || 51 || 70 || LVDS0_D1_N || LVDS0_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_P || LVDS1_CLK_P || 53 || 68 || LVDS0_CLK_P || LVDS0_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_N || LVDS1_CLK_N || 54 || 67 || LVDS0_CLK_N || LVDS0_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_P || LVDS1_D2_P || 56 || 65 || LVDS0_D2_P || LVDS0_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_N || LVDS1_D2_N || 57 || 64 || LVDS0_D2_N || LVDS0_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_P || LVDS1_D3_P || 58 || 63 || LVDS0_D3_P || LVDS0_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_N || LVDS1_D3_N || 59 || 62 || LVDS0_D3_N || LVDS0_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 60 || 61 || GND || || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15003</id>
		<title>OPOS8MP PINOUT</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15003"/>
				<updated>2021-06-04T13:09:39Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* J3 connector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS8MP]]&lt;br /&gt;
[[Category: PINOUT]]&lt;br /&gt;
&lt;br /&gt;
= J3 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 1 || 120 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 2 || 119 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 4 || 117 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VDD_3V3 || 5 || 116 || SYS_RST_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || ||  || NVCC_SVNS_1V8 || 6 || 115 || UART2_RXD || UART2_RXD || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 7 || 114 || UART2_TXD || UART2_TXD || ||&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | Not available on OPOS8MP SoM with Bluetooth chip. || GPIO5_22 || UART1_RXD || UART1_RXD || 8 || 113 || UART4_RXD || UART4_RXD || GPIO5_28 || rowspan=&amp;quot;2&amp;quot; | Default debug UART in Armadeus BSP.&lt;br /&gt;
|-&lt;br /&gt;
|| GPIO5_23 || UART1_TXD || UART1_TXD || 9 || 112 || UART4_TXD || UART4_TXD || GPIO5_29&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_26 || UART3_RXD || UART3_RXD || 10 || 111 || I2C2_SDA || I2C2_SDA || GPIO5_17 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_27 || UART3_TXD || UART3_TXD || 11 || 110 || I2C2_SCL || I2C2_SCL || GPIO5_16 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_19 || I2C3_SDA || I2C3_SDA || 12 || 109 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_18 || I2C3_SCL || I2C3_SCL || 13 || 108 || UART1_RTS || SAI2_RXD0 || GPIO4_23 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_21 || I2C4_SDA || I2C4_SDA || 14 || 107 || SAI2_RXFS || SAI2_RXFS || GPIO4_21 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_20 || I2C4_SCL || I2C4_SCL || 15 || 106 || SAI2_RXC || SAI2_RXC || GPIO4_22 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 16 || 105 || SAI2_TXD0 || SAI2_TXD0 || GPIO4_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_3 || SAI1_RXD1 || SAI1_RXD1 || 17 || 104 || UART1_CTS || SAI2_TXFS || GPIO4_24 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_2 || SAI1_RXD0 || SAI1_RXD0 || 18 || 103 || SAI2_TXC || SAI2_TXC || GPIO4_25 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_20 || SAI1_MCLK || SAI1_MCLK || 19 || 102 || SAI2_MCLK || SAI2_MCLK || GPIO4_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_18 || SAI1_TXD6 || SAI1_TXD6 || 20 || 101 || SAI3_RXD || SAI3_RXD || GPIO4_30 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_19 || SAI1_TXD7 || SAI1_TXD7 || 21 || 100 || SAI3_RXFS || SAI3_RXFS || GPIO4_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_24 || SAI5_RXD3 || SAI5_RXD3 || 22 || 99 || SAI3_RXC || SAI3_RXC || GPIO4_29 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_23 || SAI5_RXD2 || SAI5_RXD2 || 23 || 98 || SAI3_TXD || SAI3_TXD || GPIO5_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_22 || SAI5_RXD1 || SAI5_RXD1 || 24 || 97 || SAI3_TXFS || SAI3_TXFS || GPIO4_31 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_21 || SAI5_RXD0 || SAI5_RXD0 || 25 || 96 || SAI3_TXC || SAI3_TXC || GPIO5_0 || &lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_19 || SAI5_RXFS || SAI5_RXFS || 26 || 95 || SAI3_MCLK || SAI3_MCLK || GPIO5_2 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_20 || SAI5_RXC || SAI5_RXC || 27 || 94 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_25 || SAI5_MCLK || SAI5_MCLK || 28 || 93 || ECSPI2_SCLK || ECSPI2_SCLK || GPIO5_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_3 || SPDIF_TX || SPDIF_TX || 29 || 92 || ECSPI2_SS0 || ECSPI2_SCLK || GPIO5_13 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_4 || SPDIF_RX || SPDIF_RX || 30 || 91 || ECSPI2_MISO || ECSPI2_MISO || GPIO5_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_5 || SPDIF_EXT_CLK || SPDIF_EXT_CLK || 31 || 90 || ECSPI2_MOSI || ECSPI2_MOSI || GPIO5_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 32 || 89 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_6 || ECSPI1_SCLK || ECSPI1_SCLK || 33 || 88 || HDMI_TXC_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_9 || ECSPI1_SS0 || ECSPI1_SS0 || 34 || 87 || HDMI_TXC_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_12 || ECSPI1_MISO || ECSPI1_MISO || 35 || 86 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_11 || ECSPI1_MOSI || ECSPI1_MOSI || 36 || 85 || HDMI_TX0_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_12 || SD2_CD_B || SD2_CD_B || 37 || 84 || HDMI_TX0_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_15 || SD2_DAT0 || SD2_DAT0 || 38 || 83 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_16 || SD2_DAT1 || SD2_DAT1 || 39 || 82 || HDMI_TX1_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_14 || SD2_CMD || SD2_CMD || 40 || 81 || HDMI_TX1_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 41 || 80 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_13 || SD2_CLK || SD2_CLK || 42 || 79 || HDMI_CEC || HDMI_CEC || GPIO3_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 43 || 78 || HDMI_DDC_SCL || HDMI_DDC_SCL || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_18 || SD2_DAT3 || SD2_DAT3 || 44 || 77 || HDMI_DDC_SDA || HDMI_DDC_SDA || GPIO3_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_17 || SD2_DAT2 || SD2_DAT2 || 45 || 76 || HDMI_HDP || HDMI_HDP || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 46 || 75 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_A || 47 || 74 || ETH_TXRXP_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_A || 48 || 73 || ETH_TXRXM_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 49 || 72 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_B || 50 || 74 || ETH_TXRXP_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_B || 51 || 71 || ETH_TXRXM_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_C || 53 || 68 || ETH_TXRXP_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_C || 54 || 67 || ETH_TXRXM_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_D || 56 || 65 || ETH_TXRXP_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_D || 57 || 64 || ETH_TXRXM_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 58 || 63 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_ACTIVITY# || 59 || 62 || ETH_ACTIVITY# || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_LINK# || 60 || 61 || ETH_LINK# || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= J4 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_N || USB1_RX_N || 1 || 120 || GPIO1_IO15 || GPIO1_IO15 || GPIO1_15 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_P || USB1_RX_P || 2 || 119 || GPIO1_IO14 || GPIO1_IO14 || GPIO1_14 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || GPIO1_IO13 || GPIO1_IO13 || GPIO1_13 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_N || USB1_TX_N || 4 || 117 || GPIO1_IO12 || GPIO1_IO12 || GPIO1_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_P || USB1_TX_P || 5 || 116 || GPIO1_IO11 || GPIO1_IO11 || GPIO1_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 6 || 115 || GPIO1_IO10 || GPIO1_IO10 || GPIO1_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_N || USB2_RX_N || 7 || 114 || GPIO1_IO09 || GPIO1_IO09 || GPIO1_9 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_P || USB2_RX_P || 8 || 113 || GPIO1_IO08 || GPIO1_IO08 || GPIO1_8 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 9 || 112 || GPIO1_IO07 || GPIO1_IO07 || GPIO1_7 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_N || USB2_TX_N || 10 || 111 || GPIO1_IO06 || GPIO1_IO06 || GPIO1_6 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_P || USB2_TX_P || 11 || 110 || GPIO1_IO05 || GPIO1_IO05 || GPIO1_5 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 12 || 109 || GPIO1_IO04 || GPIO1_IO04 || GPIO1_4 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_N || PCIE_RX_N || 13 || 108 || GPIO1_IO01 || GPIO1_IO01 || GPIO1_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_P || PCIE_RX_P || 14 || 107 || GPIO1_IO00 || GPIO1_IO00 || GPIO1_0 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 15 || 106 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_N || PCIE_TX_N || 16 || 105 || USB1_ID || USB1_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_P || PCIE_TX_P || 17 || 104 || USB1_VBUS || USB1_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 18 || 103 || USB1_DN || USB1_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_N || PCIE_CLK_N || 19 || 102 || USB1_DP || USB1_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_P || PCIE_CLK_P || 20 || 101 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 21 || 100 || USB2_ID || USB2_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_P || DSI_DO_P || 22 || 99 || USB2_VBUS || USB2_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_N || DSI_DO_N || 23 || 98 || USB2_DN || USB2_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_P || DSI_D1_P || 24 || 97 || USB2_DP || USB2_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_N || DSI_D1_N || 25 || 96 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 26 || 95 || BOOT_MODE0 || BOOT_MODE0 || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_P || DSI_CLK_P || 27 || 94 || JTAG_TDO || JTAG_TDO || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_N || DSI_CLK_N || 28 || 93 || JTAG_TMS || JTAG_TMS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 29 || 92 || JTAG_TDI || JTAG_TDI || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_P || DSI_D2_P || 30 || 91 || JTAG_TCK || JTAG_TCK || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_N || DSI_D2_N || 31 || 90 || ONOFF || ONOFF || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_P || DSI_D3_P || 32 || 89 || PMIC_ON_REQ || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_N || DSI_D3_N || 33 || 38 || POR_B || POR_B ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 34 || 87 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_P || CSI2_D3_P || 35 || 86 || CSI1_D0_P || CSI1_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_N || CSI2_D3_N || 36 || 85 || CSI1_D0_N || CSI1_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_P || CSI2_D2_P || 37 || 84 || CSI1_D1_P || CSI1_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_N || CSI2_D2_N || 38 || 83 || CSI1_D1_N || CSI1_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 39 || 82 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_P || CSI2_CLK_P || 40 || 81 || CSI1_CLK_P || CSI1_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_N || CSI2_CLK_N || 41 || 80 || CSI1_CLK_N || CSI1_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 42 || 79 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_P || CSI2_D1_P || 43 || 78 || CSI1_D2_P || CSI1_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_N || CSI2_D1_N || 44 || 77 || CSI1_D2_N || CSI1_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_P || CSI2_D0_P || 45 || 76 || CSI1_D3_P || CSI1_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_N || CSI2_D0_N || 46 || 75 || CSI1_D3_N || CSI1_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 47 || 74 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_P || LVDS1_D0_P || 48 || 73 || LVDS0_D0_P || LVDS0_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_N || LVDS1_D0_N || 49 || 72 || LVDS0_D0_N || LVDS0_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_P || LVDS1_D1_P || 50 || 71 || LVDS0_D1_P || LVDS0_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_N || LVDS1_D1_N || 51 || 70 || LVDS0_D1_N || LVDS0_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_P || LVDS1_CLK_P || 53 || 68 || LVDS0_CLK_P || LVDS0_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_N || LVDS1_CLK_N || 54 || 67 || LVDS0_CLK_N || LVDS0_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_P || LVDS1_D2_P || 56 || 65 || LVDS0_D2_P || LVDS0_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_N || LVDS1_D2_N || 57 || 64 || LVDS0_D2_N || LVDS0_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_P || LVDS1_D3_P || 58 || 63 || LVDS0_D3_P || LVDS0_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_N || LVDS1_D3_N || 59 || 62 || LVDS0_D3_N || LVDS0_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 60 || 61 || GND || || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15002</id>
		<title>OPOS8MP PINOUT</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15002"/>
				<updated>2021-06-04T12:59:59Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* J3 connector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS8MP]]&lt;br /&gt;
[[Category: PINOUT]]&lt;br /&gt;
&lt;br /&gt;
= J3 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 1 || 120 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 2 || 119 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 4 || 117 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VDD_3V3 || 5 || 116 || SYS_RST_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || ||  || NVCC_SVNS_1V8 || 6 || 115 || UART2_RXD || UART2_RXD || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 7 || 114 || UART2_TXD || UART2_TXD || ||&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | Not available on OPOS8MP SoM with Bluetooth chip. || GPIO5_22 || UART1_RXD || UART1_RXD || 8 || 113 || UART4_RXD || UART4_RXD || GPIO5_28 || rowspan=&amp;quot;2&amp;quot; | Default debug UART in Armadeus BSP.&lt;br /&gt;
|-&lt;br /&gt;
|| GPIO5_23 || UART4_TXD || UART4_TXD || 9 || 112 || UART4_TXD || UART4_TXD || GPIO5_29&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_26 || UART3_RXD || UART3_RXD || 10 || 111 || I2C2_SDA || I2C2_SDA || GPIO5_17 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_27 || UART3_TXD || UART3_TXD || 11 || 110 || I2C2_SCL || I2C2_SCL || GPIO5_16 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_19 || I2C3_SDA || I2C3_SDA || 12 || 109 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_18 || I2C3_SCL || I2C3_SCL || 13 || 108 || UART1_RTS || SAI2_RXD0 || GPIO4_23 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_21 || I2C4_SDA || I2C4_SDA || 14 || 107 || SAI2_RXFS || SAI2_RXFS || GPIO4_21 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_20 || I2C4_SCL || I2C4_SCL || 15 || 106 || SAI2_RXC || SAI2_RXC || GPIO4_22 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 16 || 105 || SAI2_TXD0 || SAI2_TXD0 || GPIO4_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_3 || SAI1_RXD1 || SAI1_RXD1 || 17 || 104 || UART1_CTS || SAI2_TXFS || GPIO4_24 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_2 || SAI1_RXD0 || SAI1_RXD0 || 18 || 103 || SAI2_TXC || SAI2_TXC || GPIO4_25 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_20 || SAI1_MCLK || SAI1_MCLK || 19 || 102 || SAI2_MCLK || SAI2_MCLK || GPIO4_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_18 || SAI1_TXD6 || SAI1_TXD6 || 20 || 101 || SAI3_RXD || SAI3_RXD || GPIO4_30 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_19 || SAI1_TXD7 || SAI1_TXD7 || 21 || 100 || SAI3_RXFS || SAI3_RXFS || GPIO4_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_24 || SAI5_RXD3 || SAI5_RXD3 || 22 || 99 || SAI3_RXC || SAI3_RXC || GPIO4_29 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_23 || SAI5_RXD2 || SAI5_RXD2 || 23 || 98 || SAI3_TXD || SAI3_TXD || GPIO5_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_22 || SAI5_RXD1 || SAI5_RXD1 || 24 || 97 || SAI3_TXFS || SAI3_TXFS || GPIO4_31 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_21 || SAI5_RXD0 || SAI5_RXD0 || 25 || 96 || SAI3_TXC || SAI3_TXC || GPIO5_0 || &lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_19 || SAI5_RXFS || SAI5_RXFS || 26 || 95 || SAI3_MCLK || SAI3_MCLK || GPIO5_2 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_20 || SAI5_RXC || SAI5_RXC || 27 || 94 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_25 || SAI5_MCLK || SAI5_MCLK || 28 || 93 || ECSPI2_SCLK || ECSPI2_SCLK || GPIO5_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_3 || SPDIF_TX || SPDIF_TX || 29 || 92 || ECSPI2_SS0 || ECSPI2_SCLK || GPIO5_13 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_4 || SPDIF_RX || SPDIF_RX || 30 || 91 || ECSPI2_MISO || ECSPI2_MISO || GPIO5_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_5 || SPDIF_EXT_CLK || SPDIF_EXT_CLK || 31 || 90 || ECSPI2_MOSI || ECSPI2_MOSI || GPIO5_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 32 || 89 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_6 || ECSPI1_SCLK || ECSPI1_SCLK || 33 || 88 || HDMI_TXC_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_9 || ECSPI1_SS0 || ECSPI1_SS0 || 34 || 87 || HDMI_TXC_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_12 || ECSPI1_MISO || ECSPI1_MISO || 35 || 86 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_11 || ECSPI1_MOSI || ECSPI1_MOSI || 36 || 85 || HDMI_TX0_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_12 || SD2_CD_B || SD2_CD_B || 37 || 84 || HDMI_TX0_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_15 || SD2_DAT0 || SD2_DAT0 || 38 || 83 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_16 || SD2_DAT1 || SD2_DAT1 || 39 || 82 || HDMI_TX1_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_14 || SD2_CMD || SD2_CMD || 40 || 81 || HDMI_TX1_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 41 || 80 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_13 || SD2_CLK || SD2_CLK || 42 || 79 || HDMI_CEC || HDMI_CEC || GPIO3_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 43 || 78 || HDMI_DDC_SCL || HDMI_DDC_SCL || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_18 || SD2_DAT3 || SD2_DAT3 || 44 || 77 || HDMI_DDC_SDA || HDMI_DDC_SDA || GPIO3_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_17 || SD2_DAT2 || SD2_DAT2 || 45 || 76 || HDMI_HDP || HDMI_HDP || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 46 || 75 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_A || 47 || 74 || ETH_TXRXP_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_A || 48 || 73 || ETH_TXRXM_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 49 || 72 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_B || 50 || 74 || ETH_TXRXP_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_B || 51 || 71 || ETH_TXRXM_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_C || 53 || 68 || ETH_TXRXP_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_C || 54 || 67 || ETH_TXRXM_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_D || 56 || 65 || ETH_TXRXP_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_D || 57 || 64 || ETH_TXRXM_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 58 || 63 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_ACTIVITY# || 59 || 62 || ETH_ACTIVITY# || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_LINK# || 60 || 61 || ETH_LINK# || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= J4 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_N || USB1_RX_N || 1 || 120 || GPIO1_IO15 || GPIO1_IO15 || GPIO1_15 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_P || USB1_RX_P || 2 || 119 || GPIO1_IO14 || GPIO1_IO14 || GPIO1_14 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || GPIO1_IO13 || GPIO1_IO13 || GPIO1_13 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_N || USB1_TX_N || 4 || 117 || GPIO1_IO12 || GPIO1_IO12 || GPIO1_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_P || USB1_TX_P || 5 || 116 || GPIO1_IO11 || GPIO1_IO11 || GPIO1_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 6 || 115 || GPIO1_IO10 || GPIO1_IO10 || GPIO1_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_N || USB2_RX_N || 7 || 114 || GPIO1_IO09 || GPIO1_IO09 || GPIO1_9 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_P || USB2_RX_P || 8 || 113 || GPIO1_IO08 || GPIO1_IO08 || GPIO1_8 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 9 || 112 || GPIO1_IO07 || GPIO1_IO07 || GPIO1_7 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_N || USB2_TX_N || 10 || 111 || GPIO1_IO06 || GPIO1_IO06 || GPIO1_6 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_P || USB2_TX_P || 11 || 110 || GPIO1_IO05 || GPIO1_IO05 || GPIO1_5 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 12 || 109 || GPIO1_IO04 || GPIO1_IO04 || GPIO1_4 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_N || PCIE_RX_N || 13 || 108 || GPIO1_IO01 || GPIO1_IO01 || GPIO1_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_P || PCIE_RX_P || 14 || 107 || GPIO1_IO00 || GPIO1_IO00 || GPIO1_0 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 15 || 106 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_N || PCIE_TX_N || 16 || 105 || USB1_ID || USB1_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_P || PCIE_TX_P || 17 || 104 || USB1_VBUS || USB1_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 18 || 103 || USB1_DN || USB1_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_N || PCIE_CLK_N || 19 || 102 || USB1_DP || USB1_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_P || PCIE_CLK_P || 20 || 101 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 21 || 100 || USB2_ID || USB2_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_P || DSI_DO_P || 22 || 99 || USB2_VBUS || USB2_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_N || DSI_DO_N || 23 || 98 || USB2_DN || USB2_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_P || DSI_D1_P || 24 || 97 || USB2_DP || USB2_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_N || DSI_D1_N || 25 || 96 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 26 || 95 || BOOT_MODE0 || BOOT_MODE0 || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_P || DSI_CLK_P || 27 || 94 || JTAG_TDO || JTAG_TDO || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_N || DSI_CLK_N || 28 || 93 || JTAG_TMS || JTAG_TMS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 29 || 92 || JTAG_TDI || JTAG_TDI || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_P || DSI_D2_P || 30 || 91 || JTAG_TCK || JTAG_TCK || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_N || DSI_D2_N || 31 || 90 || ONOFF || ONOFF || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_P || DSI_D3_P || 32 || 89 || PMIC_ON_REQ || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_N || DSI_D3_N || 33 || 38 || POR_B || POR_B ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 34 || 87 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_P || CSI2_D3_P || 35 || 86 || CSI1_D0_P || CSI1_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_N || CSI2_D3_N || 36 || 85 || CSI1_D0_N || CSI1_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_P || CSI2_D2_P || 37 || 84 || CSI1_D1_P || CSI1_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_N || CSI2_D2_N || 38 || 83 || CSI1_D1_N || CSI1_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 39 || 82 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_P || CSI2_CLK_P || 40 || 81 || CSI1_CLK_P || CSI1_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_N || CSI2_CLK_N || 41 || 80 || CSI1_CLK_N || CSI1_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 42 || 79 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_P || CSI2_D1_P || 43 || 78 || CSI1_D2_P || CSI1_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_N || CSI2_D1_N || 44 || 77 || CSI1_D2_N || CSI1_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_P || CSI2_D0_P || 45 || 76 || CSI1_D3_P || CSI1_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_N || CSI2_D0_N || 46 || 75 || CSI1_D3_N || CSI1_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 47 || 74 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_P || LVDS1_D0_P || 48 || 73 || LVDS0_D0_P || LVDS0_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_N || LVDS1_D0_N || 49 || 72 || LVDS0_D0_N || LVDS0_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_P || LVDS1_D1_P || 50 || 71 || LVDS0_D1_P || LVDS0_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_N || LVDS1_D1_N || 51 || 70 || LVDS0_D1_N || LVDS0_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_P || LVDS1_CLK_P || 53 || 68 || LVDS0_CLK_P || LVDS0_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_N || LVDS1_CLK_N || 54 || 67 || LVDS0_CLK_N || LVDS0_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_P || LVDS1_D2_P || 56 || 65 || LVDS0_D2_P || LVDS0_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_N || LVDS1_D2_N || 57 || 64 || LVDS0_D2_N || LVDS0_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_P || LVDS1_D3_P || 58 || 63 || LVDS0_D3_P || LVDS0_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_N || LVDS1_D3_N || 59 || 62 || LVDS0_D3_N || LVDS0_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 60 || 61 || GND || || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15001</id>
		<title>OPOS8MP PINOUT</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15001"/>
				<updated>2021-06-04T12:55:23Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* J3 connector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS8MP]]&lt;br /&gt;
[[Category: PINOUT]]&lt;br /&gt;
&lt;br /&gt;
= J3 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 1 || 120 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 2 || 119 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 4 || 117 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VDD_3V3 || 5 || 116 || SYS_RST_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || ||  || NVCC_SVNS_1V8 || 6 || 115 || UART2_TXD || UART2_TXD || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 7 || 114 || UART2_RXD || UART2_RXD || ||&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | Not available on OPOS8MP SoM with Bluetooth chip. || GPIO5_22 || UART1_RXD || UART1_RXD || 8 || 113 || UART4_RXD || UART4_RXD || GPIO5_28 || rowspan=&amp;quot;2&amp;quot; | Default debug UART in Armadeus BSP.&lt;br /&gt;
|-&lt;br /&gt;
|| GPIO5_23 || UART4_TXD || UART4_TXD || 9 || 112 || UART4_TXD || UART4_TXD || GPIO5_29&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_26 || UART3_RXD || UART3_RXD || 10 || 111 || I2C2_SDA || I2C2_SDA || GPIO5_17 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_27 || UART3_TXD || UART3_TXD || 11 || 110 || I2C2_SCL || I2C2_SCL || GPIO5_16 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_19 || I2C3_SDA || I2C3_SDA || 12 || 109 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_18 || I2C3_SCL || I2C3_SCL || 13 || 108 || UART1_RTS || SAI2_RXD0 || GPIO4_23 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_21 || I2C4_SDA || I2C4_SDA || 14 || 107 || SAI2_RXFS || SAI2_RXFS || GPIO4_21 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_20 || I2C4_SCL || I2C4_SCL || 15 || 106 || SAI2_RXC || SAI2_RXC || GPIO4_22 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 16 || 105 || SAI2_TXD0 || SAI2_TXD0 || GPIO4_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_3 || SAI1_RXD1 || SAI1_RXD1 || 17 || 104 || UART1_CTS || SAI2_TXFS || GPIO4_24 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_2 || SAI1_RXD0 || SAI1_RXD0 || 18 || 103 || SAI2_TXC || SAI2_TXC || GPIO4_25 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_20 || SAI1_MCLK || SAI1_MCLK || 19 || 102 || SAI2_MCLK || SAI2_MCLK || GPIO4_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_18 || SAI1_TXD6 || SAI1_TXD6 || 20 || 101 || SAI3_RXD || SAI3_RXD || GPIO4_30 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_19 || SAI1_TXD7 || SAI1_TXD7 || 21 || 100 || SAI3_RXFS || SAI3_RXFS || GPIO4_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_24 || SAI5_RXD3 || SAI5_RXD3 || 22 || 99 || SAI3_RXC || SAI3_RXC || GPIO4_29 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_23 || SAI5_RXD2 || SAI5_RXD2 || 23 || 98 || SAI3_TXD || SAI3_TXD || GPIO5_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_22 || SAI5_RXD1 || SAI5_RXD1 || 24 || 97 || SAI3_TXFS || SAI3_TXFS || GPIO4_31 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_21 || SAI5_RXD0 || SAI5_RXD0 || 25 || 96 || SAI3_TXC || SAI3_TXC || GPIO5_0 || &lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_19 || SAI5_RXFS || SAI5_RXFS || 26 || 95 || SAI3_MCLK || SAI3_MCLK || GPIO5_2 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_20 || SAI5_RXC || SAI5_RXC || 27 || 94 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_25 || SAI5_MCLK || SAI5_MCLK || 28 || 93 || ECSPI2_SCLK || ECSPI2_SCLK || GPIO5_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_3 || SPDIF_TX || SPDIF_TX || 29 || 92 || ECSPI2_SS0 || ECSPI2_SCLK || GPIO5_13 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_4 || SPDIF_RX || SPDIF_RX || 30 || 91 || ECSPI2_MISO || ECSPI2_MISO || GPIO5_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_5 || SPDIF_EXT_CLK || SPDIF_EXT_CLK || 31 || 90 || ECSPI2_MOSI || ECSPI2_MOSI || GPIO5_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 32 || 89 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_6 || ECSPI1_SCLK || ECSPI1_SCLK || 33 || 88 || HDMI_TXC_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_9 || ECSPI1_SS0 || ECSPI1_SS0 || 34 || 87 || HDMI_TXC_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_12 || ECSPI1_MISO || ECSPI1_MISO || 35 || 86 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_11 || ECSPI1_MOSI || ECSPI1_MOSI || 36 || 85 || HDMI_TX0_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_12 || SD2_CD_B || SD2_CD_B || 37 || 84 || HDMI_TX0_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_15 || SD2_DAT0 || SD2_DAT0 || 38 || 83 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_16 || SD2_DAT1 || SD2_DAT1 || 39 || 82 || HDMI_TX1_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_14 || SD2_CMD || SD2_CMD || 40 || 81 || HDMI_TX1_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 41 || 80 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_13 || SD2_CLK || SD2_CLK || 42 || 79 || HDMI_CEC || HDMI_CEC || GPIO3_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 43 || 78 || HDMI_DDC_SCL || HDMI_DDC_SCL || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_18 || SD2_DAT3 || SD2_DAT3 || 44 || 77 || HDMI_DDC_SDA || HDMI_DDC_SDA || GPIO3_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_17 || SD2_DAT2 || SD2_DAT2 || 45 || 76 || HDMI_HDP || HDMI_HDP || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 46 || 75 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_A || 47 || 74 || ETH_TXRXP_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_A || 48 || 73 || ETH_TXRXM_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 49 || 72 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_B || 50 || 74 || ETH_TXRXP_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_B || 51 || 71 || ETH_TXRXM_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_C || 53 || 68 || ETH_TXRXP_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_C || 54 || 67 || ETH_TXRXM_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_D || 56 || 65 || ETH_TXRXP_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_D || 57 || 64 || ETH_TXRXM_D || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 58 || 63 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_ACTIVITY# || 59 || 62 || ETH_ACTIVITY# || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_LINK# || 60 || 61 || ETH_LINK# || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= J4 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_N || USB1_RX_N || 1 || 120 || GPIO1_IO15 || GPIO1_IO15 || GPIO1_15 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_P || USB1_RX_P || 2 || 119 || GPIO1_IO14 || GPIO1_IO14 || GPIO1_14 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || GPIO1_IO13 || GPIO1_IO13 || GPIO1_13 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_N || USB1_TX_N || 4 || 117 || GPIO1_IO12 || GPIO1_IO12 || GPIO1_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_P || USB1_TX_P || 5 || 116 || GPIO1_IO11 || GPIO1_IO11 || GPIO1_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 6 || 115 || GPIO1_IO10 || GPIO1_IO10 || GPIO1_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_N || USB2_RX_N || 7 || 114 || GPIO1_IO09 || GPIO1_IO09 || GPIO1_9 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_P || USB2_RX_P || 8 || 113 || GPIO1_IO08 || GPIO1_IO08 || GPIO1_8 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 9 || 112 || GPIO1_IO07 || GPIO1_IO07 || GPIO1_7 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_N || USB2_TX_N || 10 || 111 || GPIO1_IO06 || GPIO1_IO06 || GPIO1_6 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_P || USB2_TX_P || 11 || 110 || GPIO1_IO05 || GPIO1_IO05 || GPIO1_5 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 12 || 109 || GPIO1_IO04 || GPIO1_IO04 || GPIO1_4 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_N || PCIE_RX_N || 13 || 108 || GPIO1_IO01 || GPIO1_IO01 || GPIO1_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_P || PCIE_RX_P || 14 || 107 || GPIO1_IO00 || GPIO1_IO00 || GPIO1_0 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 15 || 106 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_N || PCIE_TX_N || 16 || 105 || USB1_ID || USB1_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_P || PCIE_TX_P || 17 || 104 || USB1_VBUS || USB1_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 18 || 103 || USB1_DN || USB1_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_N || PCIE_CLK_N || 19 || 102 || USB1_DP || USB1_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_P || PCIE_CLK_P || 20 || 101 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 21 || 100 || USB2_ID || USB2_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_P || DSI_DO_P || 22 || 99 || USB2_VBUS || USB2_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_N || DSI_DO_N || 23 || 98 || USB2_DN || USB2_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_P || DSI_D1_P || 24 || 97 || USB2_DP || USB2_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_N || DSI_D1_N || 25 || 96 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 26 || 95 || BOOT_MODE0 || BOOT_MODE0 || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_P || DSI_CLK_P || 27 || 94 || JTAG_TDO || JTAG_TDO || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_N || DSI_CLK_N || 28 || 93 || JTAG_TMS || JTAG_TMS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 29 || 92 || JTAG_TDI || JTAG_TDI || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_P || DSI_D2_P || 30 || 91 || JTAG_TCK || JTAG_TCK || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_N || DSI_D2_N || 31 || 90 || ONOFF || ONOFF || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_P || DSI_D3_P || 32 || 89 || PMIC_ON_REQ || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_N || DSI_D3_N || 33 || 38 || POR_B || POR_B ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 34 || 87 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_P || CSI2_D3_P || 35 || 86 || CSI1_D0_P || CSI1_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_N || CSI2_D3_N || 36 || 85 || CSI1_D0_N || CSI1_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_P || CSI2_D2_P || 37 || 84 || CSI1_D1_P || CSI1_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_N || CSI2_D2_N || 38 || 83 || CSI1_D1_N || CSI1_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 39 || 82 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_P || CSI2_CLK_P || 40 || 81 || CSI1_CLK_P || CSI1_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_N || CSI2_CLK_N || 41 || 80 || CSI1_CLK_N || CSI1_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 42 || 79 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_P || CSI2_D1_P || 43 || 78 || CSI1_D2_P || CSI1_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_N || CSI2_D1_N || 44 || 77 || CSI1_D2_N || CSI1_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_P || CSI2_D0_P || 45 || 76 || CSI1_D3_P || CSI1_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_N || CSI2_D0_N || 46 || 75 || CSI1_D3_N || CSI1_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 47 || 74 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_P || LVDS1_D0_P || 48 || 73 || LVDS0_D0_P || LVDS0_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_N || LVDS1_D0_N || 49 || 72 || LVDS0_D0_N || LVDS0_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_P || LVDS1_D1_P || 50 || 71 || LVDS0_D1_P || LVDS0_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_N || LVDS1_D1_N || 51 || 70 || LVDS0_D1_N || LVDS0_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_P || LVDS1_CLK_P || 53 || 68 || LVDS0_CLK_P || LVDS0_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_N || LVDS1_CLK_N || 54 || 67 || LVDS0_CLK_N || LVDS0_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_P || LVDS1_D2_P || 56 || 65 || LVDS0_D2_P || LVDS0_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_N || LVDS1_D2_N || 57 || 64 || LVDS0_D2_N || LVDS0_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_P || LVDS1_D3_P || 58 || 63 || LVDS0_D3_P || LVDS0_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_N || LVDS1_D3_N || 59 || 62 || LVDS0_D3_N || LVDS0_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 60 || 61 || GND || || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15000</id>
		<title>OPOS8MP PINOUT</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=15000"/>
				<updated>2021-06-04T12:51:12Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* J3 connector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS8MP]]&lt;br /&gt;
[[Category: PINOUT]]&lt;br /&gt;
&lt;br /&gt;
= J3 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 1 || 120 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 2 || 119 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 4 || 117 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VDD_3V3 || 5 || 116 || SYS_RST_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || ||  || NVCC_SVNS_1V8 || 6 || 115 || UART2_TXD || UART2_TXD || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 7 || 114 || UART2_RXD || UART2_RXD || ||&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | Not available on OPOS8MP SoM with Bluetooth chip. || GPIO5_22 || UART1_RXD || UART1_RXD || 8 || 113 || UART4_RXD || UART4_RXD || GPIO5_28 || rowspan=&amp;quot;2&amp;quot; | Default debug UART in Armadeus BSP.&lt;br /&gt;
|-&lt;br /&gt;
|| GPIO5_23 || UART4_TXD || UART4_TXD || 9 || 112 || UART4_TXD || UART4_TXD || GPIO5_29&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_26 || UART3_RXD || UART3_RXD || 10 || 111 || I2C2_SDA || I2C2_SDA || GPIO5_17 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_27 || UART3_TXD || UART3_TXD || 11 || 110 || I2C2_SCL || I2C2_SCL || GPIO5_16 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_19 || I2C3_SDA || I2C3_SDA || 12 || 109 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_18 || I2C3_SCL || I2C3_SCL || 13 || 108 || UART1_RTS || SAI2_RXD0 || GPIO4_23 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_21 || I2C4_SDA || I2C4_SDA || 14 || 107 || SAI2_RXFS || SAI2_RXFS || GPIO4_21 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_20 || I2C4_SCL || I2C4_SCL || 15 || 106 || SAI2_RXC || SAI2_RXC || GPIO4_22 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 16 || 105 || SAI2_TXD0 || SAI2_TXD0 || GPIO4_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_3 || SAI1_RXD1 || SAI1_RXD1 || 17 || 104 || UART1_CTS || SAI2_TXFS || GPIO4_24 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_2 || SAI1_RXD0 || SAI1_RXD0 || 18 || 103 || SAI2_TXC || SAI2_TXC || GPIO4_25 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_20 || SAI1_MCLK || SAI1_MCLK || 19 || 102 || SAI2_MCLK || SAI2_MCLK || GPIO4_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_18 || SAI1_TXD6 || SAI1_TXD6 || 20 || 101 || SAI3_RXD || SAI3_RXD || GPIO4_30 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_19 || SAI1_TXD7 || SAI1_TXD7 || 21 || 100 || SAI3_RXFS || SAI3_RXFS || GPIO4_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_24 || SAI5_RXD3 || SAI5_RXD3 || 22 || 99 || SAI3_RXC || SAI3_RXC || GPIO4_29 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_23 || SAI5_RXD2 || SAI5_RXD2 || 23 || 98 || SAI3_TXD || SAI3_TXD || GPIO5_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_22 || SAI5_RXD1 || SAI5_RXD1 || 24 || 97 || SAI3_TXFS || SAI3_TXFS || GPIO4_31 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_21 || SAI5_RXD0 || SAI5_RXD0 || 25 || 96 || SAI3_TXC || SAI3_TXC || GPIO5_0 || &lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_19 || SAI5_RXFS || SAI5_RXFS || 26 || 95 || SAI3_MCLK || SAI3_MCLK || GPIO5_2 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_20 || SAI5_RXC || SAI5_RXC || 27 || 94 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_25 || SAI5_MCLK || SAI5_MCLK || 28 || 93 || ECSPI2_SCLK || ECSPI2_SCLK || GPIO5_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_3 || SPDIF_TX || SPDIF_TX || 29 || 92 || ECSPI2_SS0 || ECSPI2_SCLK || GPIO5_13 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_4 || SPDIF_RX || SPDIF_RX || 30 || 91 || ECSPI2_MISO || ECSPI2_MISO || GPIO5_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_5 || SPDIF_EXT_CLK || SPDIF_EXT_CLK || 31 || 90 || ECSPI2_MOSI || ECSPI2_MOSI || GPIO5_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 32 || 89 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_6 || ECSPI1_SCLK || ECSPI1_SCLK || 33 || 88 || HDMI_TXC_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_9 || ECSPI1_SS0 || ECSPI1_SS0 || 34 || 87 || HDMI_TXC_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_12 || ECSPI1_MISO || ECSPI1_MISO || 35 || 86 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_11 || ECSPI1_MOSI || ECSPI1_MOSI || 36 || 85 || HDMI_TX0_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_12 || SD2_CD_B || SD2_CD_B || 37 || 84 || HDMI_TX0_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_15 || SD2_DAT0 || SD2_DAT0 || 38 || 83 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_16 || SD2_DAT1 || SD2_DAT1 || 39 || 82 || HDMI_TX1_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_14 || SD2_CMD || SD2_CMD || 40 || 81 || HDMI_TX1_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 41 || 80 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_13 || SD2_CLK || SD2_CLK || 42 || 79 || HDMI_CEC || HDMI_CEC || GPIO3_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 43 || 78 || HDMI_DDC_SCL || HDMI_DDC_SCL || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_18 || SD2_DAT3 || SD2_DAT3 || 44 || 77 || HDMI_DDC_SDA || HDMI_DDC_SDA || GPIO3_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_17 || SD2_DAT2 || SD2_DAT2 || 45 || 76 || HDMI_HDP || HDMI_HDP || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 46 || 75 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_A || 47 || 74 || ETH_TXRXP_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_A || 48 || 73 || ETH_TXRXM_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 49 || 72 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_B || 50 || 74 || ETH_TXRXP_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_B || 51 || 71 || ETH_TXRXM_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_C || 53 || 68 || ETH_TXRXP_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_C || 54 || 67 || ETH_TXRXM_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_D || 56 || 65 || ETH_TXRXP_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_D || 57 || 64 || ETH_TXRXM_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 58 || 63 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_ACTIVITY# || 59 || 62 || ETH_ACTIVITY# || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_LINK# || 60 || 61 || ETH_LINK# || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= J4 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_N || USB1_RX_N || 1 || 120 || GPIO1_IO15 || GPIO1_IO15 || GPIO1_15 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_P || USB1_RX_P || 2 || 119 || GPIO1_IO14 || GPIO1_IO14 || GPIO1_14 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || GPIO1_IO13 || GPIO1_IO13 || GPIO1_13 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_N || USB1_TX_N || 4 || 117 || GPIO1_IO12 || GPIO1_IO12 || GPIO1_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_P || USB1_TX_P || 5 || 116 || GPIO1_IO11 || GPIO1_IO11 || GPIO1_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 6 || 115 || GPIO1_IO10 || GPIO1_IO10 || GPIO1_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_N || USB2_RX_N || 7 || 114 || GPIO1_IO09 || GPIO1_IO09 || GPIO1_9 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_P || USB2_RX_P || 8 || 113 || GPIO1_IO08 || GPIO1_IO08 || GPIO1_8 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 9 || 112 || GPIO1_IO07 || GPIO1_IO07 || GPIO1_7 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_N || USB2_TX_N || 10 || 111 || GPIO1_IO06 || GPIO1_IO06 || GPIO1_6 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_P || USB2_TX_P || 11 || 110 || GPIO1_IO05 || GPIO1_IO05 || GPIO1_5 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 12 || 109 || GPIO1_IO04 || GPIO1_IO04 || GPIO1_4 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_N || PCIE_RX_N || 13 || 108 || GPIO1_IO01 || GPIO1_IO01 || GPIO1_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_P || PCIE_RX_P || 14 || 107 || GPIO1_IO00 || GPIO1_IO00 || GPIO1_0 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 15 || 106 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_N || PCIE_TX_N || 16 || 105 || USB1_ID || USB1_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_P || PCIE_TX_P || 17 || 104 || USB1_VBUS || USB1_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 18 || 103 || USB1_DN || USB1_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_N || PCIE_CLK_N || 19 || 102 || USB1_DP || USB1_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_P || PCIE_CLK_P || 20 || 101 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 21 || 100 || USB2_ID || USB2_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_P || DSI_DO_P || 22 || 99 || USB2_VBUS || USB2_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_N || DSI_DO_N || 23 || 98 || USB2_DN || USB2_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_P || DSI_D1_P || 24 || 97 || USB2_DP || USB2_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_N || DSI_D1_N || 25 || 96 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 26 || 95 || BOOT_MODE0 || BOOT_MODE0 || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_P || DSI_CLK_P || 27 || 94 || JTAG_TDO || JTAG_TDO || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_N || DSI_CLK_N || 28 || 93 || JTAG_TMS || JTAG_TMS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 29 || 92 || JTAG_TDI || JTAG_TDI || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_P || DSI_D2_P || 30 || 91 || JTAG_TCK || JTAG_TCK || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_N || DSI_D2_N || 31 || 90 || ONOFF || ONOFF || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_P || DSI_D3_P || 32 || 89 || PMIC_ON_REQ || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_N || DSI_D3_N || 33 || 38 || POR_B || POR_B ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 34 || 87 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_P || CSI2_D3_P || 35 || 86 || CSI1_D0_P || CSI1_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_N || CSI2_D3_N || 36 || 85 || CSI1_D0_N || CSI1_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_P || CSI2_D2_P || 37 || 84 || CSI1_D1_P || CSI1_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_N || CSI2_D2_N || 38 || 83 || CSI1_D1_N || CSI1_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 39 || 82 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_P || CSI2_CLK_P || 40 || 81 || CSI1_CLK_P || CSI1_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_N || CSI2_CLK_N || 41 || 80 || CSI1_CLK_N || CSI1_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 42 || 79 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_P || CSI2_D1_P || 43 || 78 || CSI1_D2_P || CSI1_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_N || CSI2_D1_N || 44 || 77 || CSI1_D2_N || CSI1_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_P || CSI2_D0_P || 45 || 76 || CSI1_D3_P || CSI1_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_N || CSI2_D0_N || 46 || 75 || CSI1_D3_N || CSI1_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 47 || 74 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_P || LVDS1_D0_P || 48 || 73 || LVDS0_D0_P || LVDS0_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_N || LVDS1_D0_N || 49 || 72 || LVDS0_D0_N || LVDS0_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_P || LVDS1_D1_P || 50 || 71 || LVDS0_D1_P || LVDS0_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_N || LVDS1_D1_N || 51 || 70 || LVDS0_D1_N || LVDS0_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_P || LVDS1_CLK_P || 53 || 68 || LVDS0_CLK_P || LVDS0_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_N || LVDS1_CLK_N || 54 || 67 || LVDS0_CLK_N || LVDS0_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_P || LVDS1_D2_P || 56 || 65 || LVDS0_D2_P || LVDS0_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_N || LVDS1_D2_N || 57 || 64 || LVDS0_D2_N || LVDS0_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_P || LVDS1_D3_P || 58 || 63 || LVDS0_D3_P || LVDS0_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_N || LVDS1_D3_N || 59 || 62 || LVDS0_D3_N || LVDS0_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 60 || 61 || GND || || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=14999</id>
		<title>OPOS8MP PINOUT</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS8MP_PINOUT&amp;diff=14999"/>
				<updated>2021-06-04T12:47:20Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* J4 connector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS8MP]]&lt;br /&gt;
[[Category: PINOUT]]&lt;br /&gt;
&lt;br /&gt;
= J3 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 1 || 120 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VIN || 2 || 119 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 4 || 117 || VIN || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || VDD_3V3 || 5 || 116 || SYS_RST_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || ||  || NVCC_SVNS_1V8 || 6 || 115 || UART2_TXD || UART2_TXD || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 7 || 114 || UART2_RXD || UART2_RXD || ||&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; | Not available on OPOS8MP SoM with Bluetooth chip. || GPIO5_22 || UART1_RXD || UART1_RXD || 8 || 113 || UART4_RXD || UART4_RXD || GPIO5_28 || rowspan=&amp;quot;2&amp;quot; | Default debug UART in Armadeus BSP.&lt;br /&gt;
|-&lt;br /&gt;
|| GPIO5_23 || UART4_TXD || UART4_TXD || 9 || 112 || UART4_TXD || UART4_TXD || GPIO5_29&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_26 || UART3_RXD || UART3_RXD || 10 || 111 || I2C2_SDA || I2C2_SDA || GPIO5_17 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_27 || UART3_TXD || UART3_TXD || 11 || 110 || I2C2_SCL || I2C2_SCL || GPIO5_16 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_19 || I2C3_SDA || I2C3_SDA || 12 || 109 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_18 || I2C3_SCL || I2C3_SCL || 13 || 108 || UART1_RTS || SAI2_RXD0 || GPIO4_23 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_21 || I2C4_SDA || I2C4_SDA || 14 || 107 || SAI2_RXFS || SAI2_RXFS || GPIO4_21 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_20 || I2C4_SCL || I2C4_SCL || 15 || 106 || SAI2_RXC || SAI2_RXC || GPIO4_22 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 16 || 105 || SAI2_TXD0 || SAI2_TXD0 || GPIO4_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_3 || SAI1_RXD1 || SAI1_RXD1 || 17 || 104 || UART1_CTS || SAI2_TXFS || GPIO4_24 || Not available on OPOS8MP SoM with Bluetooth chip.&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_2 || SAI1_RXD0 || SAI1_RXD0 || 18 || 103 || SAI2_TXC || SAI2_TXC || GPIO4_25 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_20 || SAI1_MCLK || SAI1_MCLK || 19 || 102 || SAI2_MCLK || SAI2_MCLK || GPIO4_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_18 || SAI1_TXD6 || SAI1_TXD6 || 20 || 101 || SAI3_RXD || SAI3_RXD || GPIO4_30 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO4_19 || SAI1_TXD7 || SAI1_TXD7 || 21 || 100 || SAI3_RXFS || SAI3_RXFS || GPIO4_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_24 || SAI5_RXD3 || SAI5_RXD3 || 22 || 99 || SAI3_RXC || SAI3_RXC || GPIO4_29 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_23 || SAI5_RXD2 || SAI5_RXD2 || 23 || 98 || SAI3_TXD || SAI3_TXD || GPIO5_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_22 || SAI5_RXD1 || SAI5_RXD1 || 24 || 97 || SAI3_TXFS || SAI3_TXFS || GPIO4_31 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_21 || SAI5_RXD0 || SAI5_RXD0 || 25 || 96 || SAI3_TXC || SAI3_TXC || GPIO5_0 || &lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_19 || SAI5_RXFS || SAI5_RXFS || 26 || 95 || SAI3_MCLK || SAI3_MCLK || GPIO5_2 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_20 || SAI5_RXC || SAI5_RXC || 27 || 94 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO3_25 || SAI5_MCLK || SAI5_MCLK || 28 || 93 || ECSPI2_SCLK || ECSPI2_SCLK || GPIO5_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_3 || SPDIF_TX || SPDIF_TX || 29 || 92 || ECSPI2_SS0 || ECSPI2_SCLK || GPIO5_13 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_4 || SPDIF_TX || SPDIF_TX || 30 || 91 || ECSPI2_MISO || ECSPI2_MISO || GPIO5_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_5 || SPDIF_EXT_CLK || SPDIF_EXT_CLK || 31 || 90 || ECSPI2_MOSI || ECSPI2_MOSI || GPIO5_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 32 || 89 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_6 || ECSPI1_SCLK || ECSPI1_SCLK || 33 || 88 || HDMI_TXC_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_9 || ECSPI1_SS0 || ECSPI1_SS0 || 34 || 87 || HDMI_TXC_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_12 || ECSPI1_MISO || ECSPI1_MISO || 35 || 86 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO5_11 || ECSPI1_MOSI || ECSPI1_MOSI || 36 || 85 || HDMI_TX0_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_12 || SD2_CD_B || SD2_CD_B || 37 || 84 || HDMI_TX0_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_15 || SD2_DAT0 || SD2_DAT0 || 38 || 83 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_16 || SD2_DAT1 || SD2_DAT1 || 39 || 82 || HDMI_TX1_N || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_14 || SD2_CMD || SD2_CMD || 40 || 81 || HDMI_TX1_P || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 41 || 80 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO2_13 || SD2_CLK || SD2_CLK || 42 || 79 || HDMI_CEC || HDMI_CEC || GPIO3_28 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 43 || 78 || HDMI_DDC_SCL || HDMI_DDC_SCL || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_18 || SD2_DAT3 || SD2_DAT3 || 44 || 77 || HDMI_DDC_SDA || HDMI_DDC_SDA || GPIO3_27 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || GPIO_2_17 || SD2_DAT2 || SD2_DAT2 || 45 || 76 || HDMI_HDP || HDMI_HDP || GPIO3_26 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 46 || 75 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_A || 47 || 74 || ETH_TXRXP_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_A || 48 || 73 || ETH_TXRXM_A || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 49 || 72 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_B || 50 || 74 || ETH_TXRXP_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_B || 51 || 71 || ETH_TXRXM_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_C || 53 || 68 || ETH_TXRXP_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_C || 54 || 67 || ETH_TXRXM_B || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXP_D || 56 || 65 || ETH_TXRXP_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_TXRXM_D || 57 || 64 || ETH_TXRXM_C || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 58 || 63 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_ACTIVITY# || 59 || 62 || ETH_ACTIVITY# || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || ETH_QOS_LINK# || 60 || 61 || ETH_LINK# || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= J4 connector =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none; text-align:center;&amp;quot;&lt;br /&gt;
! Comments !! GPIO !! i.MX8MP pad name !!  OPOS8MP pad name !! Pin !! Pin !! OPOS8MP pad name !! i.MX8MP pad name !! GPIO !! Comments&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_N || USB1_RX_N || 1 || 120 || GPIO1_IO15 || GPIO1_IO15 || GPIO1_15 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_RX_P || USB1_RX_P || 2 || 119 || GPIO1_IO14 || GPIO1_IO14 || GPIO1_14 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 3 || 118 || GPIO1_IO13 || GPIO1_IO13 || GPIO1_13 || &lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_N || USB1_TX_N || 4 || 117 || GPIO1_IO12 || GPIO1_IO12 || GPIO1_12 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB1_TX_P || USB1_TX_P || 5 || 116 || GPIO1_IO11 || GPIO1_IO11 || GPIO1_11 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 6 || 115 || GPIO1_IO10 || GPIO1_IO10 || GPIO1_10 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_N || USB2_RX_N || 7 || 114 || GPIO1_IO09 || GPIO1_IO09 || GPIO1_9 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_RX_P || USB2_RX_P || 8 || 113 || GPIO1_IO08 || GPIO1_IO08 || GPIO1_8 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 9 || 112 || GPIO1_IO07 || GPIO1_IO07 || GPIO1_7 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_N || USB2_TX_N || 10 || 111 || GPIO1_IO06 || GPIO1_IO06 || GPIO1_6 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || USB2_TX_P || USB2_TX_P || 11 || 110 || GPIO1_IO05 || GPIO1_IO05 || GPIO1_5 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 12 || 109 || GPIO1_IO04 || GPIO1_IO04 || GPIO1_4 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_N || PCIE_RX_N || 13 || 108 || GPIO1_IO01 || GPIO1_IO01 || GPIO1_1 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_RX_P || PCIE_RX_P || 14 || 107 || GPIO1_IO00 || GPIO1_IO00 || GPIO1_0 ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 15 || 106 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_N || PCIE_TX_N || 16 || 105 || USB1_ID || USB1_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_TX_P || PCIE_TX_P || 17 || 104 || USB1_VBUS || USB1_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 18 || 103 || USB1_DN || USB1_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_N || PCIE_CLK_N || 19 || 102 || USB1_DP || USB1_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || PCIE_CLK_P || PCIE_CLK_P || 20 || 101 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 21 || 100 || USB2_ID || USB2_ID || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_P || DSI_DO_P || 22 || 99 || USB2_VBUS || USB2_VBUS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_DO_N || DSI_DO_N || 23 || 98 || USB2_DN || USB2_DN || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_P || DSI_D1_P || 24 || 97 || USB2_DP || USB2_DP || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D1_N || DSI_D1_N || 25 || 96 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 26 || 95 || BOOT_MODE0 || BOOT_MODE0 || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_P || DSI_CLK_P || 27 || 94 || JTAG_TDO || JTAG_TDO || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_CLK_N || DSI_CLK_N || 28 || 93 || JTAG_TMS || JTAG_TMS || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 29 || 92 || JTAG_TDI || JTAG_TDI || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_P || DSI_D2_P || 30 || 91 || JTAG_TCK || JTAG_TCK || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D2_N || DSI_D2_N || 31 || 90 || ONOFF || ONOFF || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_P || DSI_D3_P || 32 || 89 || PMIC_ON_REQ || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || DSI_D3_N || DSI_D3_N || 33 || 38 || POR_B || POR_B ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 34 || 87 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_P || CSI2_D3_P || 35 || 86 || CSI1_D0_P || CSI1_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D3_N || CSI2_D3_N || 36 || 85 || CSI1_D0_N || CSI1_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_P || CSI2_D2_P || 37 || 84 || CSI1_D1_P || CSI1_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D2_N || CSI2_D2_N || 38 || 83 || CSI1_D1_N || CSI1_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 39 || 82 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_P || CSI2_CLK_P || 40 || 81 || CSI1_CLK_P || CSI1_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_CLK_N || CSI2_CLK_N || 41 || 80 || CSI1_CLK_N || CSI1_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 42 || 79 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_P || CSI2_D1_P || 43 || 78 || CSI1_D2_P || CSI1_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D1_N || CSI2_D1_N || 44 || 77 || CSI1_D2_N || CSI1_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_P || CSI2_D0_P || 45 || 76 || CSI1_D3_P || CSI1_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || CSI2_D0_N || CSI2_D0_N || 46 || 75 || CSI1_D3_N || CSI1_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 47 || 74 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_P || LVDS1_D0_P || 48 || 73 || LVDS0_D0_P || LVDS0_D0_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D0_N || LVDS1_D0_N || 49 || 72 || LVDS0_D0_N || LVDS0_D0_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_P || LVDS1_D1_P || 50 || 71 || LVDS0_D1_P || LVDS0_D1_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D1_N || LVDS1_D1_N || 51 || 70 || LVDS0_D1_N || LVDS0_D1_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 52 || 69 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_P || LVDS1_CLK_P || 53 || 68 || LVDS0_CLK_P || LVDS0_CLK_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_CLK_N || LVDS1_CLK_N || 54 || 67 || LVDS0_CLK_N || LVDS0_CLK_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 55 || 66 || GND || || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_P || LVDS1_D2_P || 56 || 65 || LVDS0_D2_P || LVDS0_D2_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D2_N || LVDS1_D2_N || 57 || 64 || LVDS0_D2_N || LVDS0_D2_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_P || LVDS1_D3_P || 58 || 63 || LVDS0_D3_P || LVDS0_D3_P || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || LVDS1_D3_N || LVDS1_D3_N || 59 || 62 || LVDS0_D3_N || LVDS0_D3_N || ||&lt;br /&gt;
|-&lt;br /&gt;
|| || || || GND || 60 || 61 || GND || || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OpenCV&amp;diff=10634</id>
		<title>OpenCV</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OpenCV&amp;diff=10634"/>
				<updated>2012-02-13T18:05:06Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Compiling and installing OpenCV-2.3.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OpenCV 2.3 =&lt;br /&gt;
&lt;br /&gt;
The buildroot openCV package is not available yet in the buildroot version used by ARMadeus, however I will explain a little workaround to cross-compile this graphical library and use it on your ARMadeus plateform. I was inspired by the Opencv 2.1 section downwards.&lt;br /&gt;
&lt;br /&gt;
This section has been written using an APF51 with the git-trunk ARMadeus version.&lt;br /&gt;
&lt;br /&gt;
== Buildroot configuration ==&lt;br /&gt;
&lt;br /&gt;
*Install lib4vl&lt;br /&gt;
In your armadeus directory:&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;host&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
  Hardware handling  ---&amp;gt;&lt;br /&gt;
    [*] libv4l&lt;br /&gt;
      [*]   v4l2-ctl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Take a look in...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
  Libraries  ---&amp;gt;&lt;br /&gt;
    Graphics  ---&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... if the interesting format (jpg, png etc ...) for your application is checked.&lt;br /&gt;
&lt;br /&gt;
== Compiling and installing OpenCV-2.3.1 ==&lt;br /&gt;
&lt;br /&gt;
*Prepare the directories&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ mkdir OpenCV-2.3.1&lt;br /&gt;
$ cd OpenCV-2.3.1&lt;br /&gt;
$ mkdir build&lt;br /&gt;
$ mkdir src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get the source&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cd src&lt;br /&gt;
$ wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.3.1/OpenCV-2.3.1a.tar.bz2&lt;br /&gt;
$ tar xvjf OpenCV-2.3.1a.tar.bz2&lt;br /&gt;
$ cd ../&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Patch the source&lt;br /&gt;
This (dirty?) patch fix a compatibility problem with the long double type on ARM plateforme (fabsl not available).&lt;br /&gt;
&lt;br /&gt;
[[#OpenCV-2.3.1.patch| OpenCV-2.3.1.patch]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ patch -p0 &amp;lt; OpenCV-2.3.1.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Build Makefile from CMake&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cd build&lt;br /&gt;
$ cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_TOOLCHAIN_FILE:PATH=your_armadeus_directory/buildroot/output/toolchainfile.cmake -DCMAKE_INSTALL_PREFIX=your_armadeus_directory/buildroot/output/staging/usr/ -DCMAKE_BUILD_TYPE=RELEASE ../src/OpenCV-2.3.1/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if no error and the install path.&lt;br /&gt;
You can configure your OpenCV compilation with...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cmake-gui&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Build OpenCV-2.3.1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Copy the libraries into your rootfs filesystem.&lt;br /&gt;
In your armadeus directory:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cp buildroot/output/staging/usr/lib/libopencv_* buildroot/output/target/usr/lib/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test &amp;amp; example ==&lt;br /&gt;
&lt;br /&gt;
This test was made with a Logitech QuickCam Communicate STX.&lt;br /&gt;
&lt;br /&gt;
=== Configure your Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
In your armadeus directory:&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;
Check if the V4L driver is correctly checked:&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;
  &amp;lt;M&amp;gt; Multimedia support  ---&amp;gt;&lt;br /&gt;
     &amp;lt;M&amp;gt;   Video For Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And configure your driver, in our case for the Logitech QuickCam Communicate STX:&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;
  &amp;lt;M&amp;gt; Multimedia support  ---&amp;gt;&lt;br /&gt;
     [*]   Video capture adapters  ---&amp;gt;&lt;br /&gt;
       [*]   V4L USB devices  ---&amp;gt;&lt;br /&gt;
         &amp;lt;M&amp;gt;   GSPCA based webcams  ---&amp;gt;&lt;br /&gt;
           &amp;lt;M&amp;gt;   ZC3XX USB Camera Driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reflash kernel and rootfs.&lt;br /&gt;
&lt;br /&gt;
== Build your application ==&lt;br /&gt;
&lt;br /&gt;
In your armadeus directory&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cd buildroot/output/build&lt;br /&gt;
$ mkdir opencv_example&lt;br /&gt;
$ cd opencv_example&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory, copy these files:&lt;br /&gt;
&lt;br /&gt;
[[#Makefile| Makefile]]&lt;br /&gt;
&lt;br /&gt;
[[#opencv_example.c| opencv_example]]&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;
== Run the application test ==&lt;br /&gt;
&lt;br /&gt;
On your APF board&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe videodev&lt;br /&gt;
# modprobe gspca_zc3xx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where gspca_zc3xx corresponding to my logitech webcam.&lt;br /&gt;
&lt;br /&gt;
Then run the opencv_example application et check the picture test.jpg.&lt;br /&gt;
&lt;br /&gt;
= OpenCV 2.1 =&lt;br /&gt;
{{Under_Construction}}&lt;br /&gt;
== Forewords ==&lt;br /&gt;
This section explains how to (cross-)compile [http://opencv.willowgarage.com/wiki OpenCV] 2.1.0 or later for your APF-board.&lt;br /&gt;
&lt;br /&gt;
== Pre-requisite ==&lt;br /&gt;
The CMake infrastructure has been integrated in Buildroot since the [http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.02 BR release 2011.02].&lt;br /&gt;
&lt;br /&gt;
The CMake infrastructure is available in armadeus SDK since the &lt;br /&gt;
[http://armadeus.git.sourceforge.net/git/gitweb.cgi?p=armadeus/armadeus;a=blob;f=ChangeLog;hb=cbc69e2606aeb8ad56701b3191e9632dc8358653 armadeus-4.1 release] (since it is based on BR release 2011.05).&lt;br /&gt;
&lt;br /&gt;
{{Note|Using elder armadeus SDK requires having [[CMake]] 2.6 or later installed on the host system.}}&lt;br /&gt;
&lt;br /&gt;
== Build OpenCV ==&lt;br /&gt;
&lt;br /&gt;
{{Note|The tutorial hereafter (patch and OpenCV configuration) is for the OpenCV 2.1.0 release.&lt;br /&gt;
&lt;br /&gt;
This may changes in newer OpenCV releases. Updates are welcome ;-)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
# Setup the CMake toolchain file:&lt;br /&gt;
## '''Using armadeus-4.1 SDK or later (or git view):''' this file is generated by buildroot and is located in ''armadeus-4.1/buildroot/output/toolchainfile.cmake''.&lt;br /&gt;
## '''Using armadeus-4.0 SDK or former:''' the [[CMake#The_toolchain_file| toolchainfile.cmake]] must be manually edited.&lt;br /&gt;
# Create source and build directories &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -pv opencv-on-armadeus/{src,build}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Grab the OpenCV source archive.&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd opencv-on-armadeus/src &amp;amp;&amp;amp; wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.1/OpenCV-2.1.0.tar.bz2 &amp;amp;&amp;amp; tar xvvjf OpenCV-2.1.0.tar.bz2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Here, you'll have to apply [[#OpenCV-2.1.0.patch| this patch]] to avoid compilation failed: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
patch -p0 &amp;lt; OpenCV-2.1.0.patch&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Run CMake (generate Makefiles)&lt;br /&gt;
##  &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/opencv-on-armadeus/build &amp;amp;&amp;amp; cmake -DCMAKE_TOOLCHAIN_FILE:PATH=/path/to/toolchainfile.cmake ../src/OpenCV-2.1.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
##It will certainly complain about unfound libraries and some other things, so adjust these things running:&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cmake-gui&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Compile OpenCV libraries &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
VERBOSE=1 make&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|'''cmake-gui'''&lt;br /&gt;
&lt;br /&gt;
* Click twice on ''Configure'' when you change something.&lt;br /&gt;
* When configuring exit without any error, click on ''Generate'' to generate Makefiles.&lt;br /&gt;
* If your configuration is too messy, reset it by deleting the cache (File/Delete Cache) or remove the ''CMakeCache.txt'' file in the build directory. Don't hesitate to do so if something (eg. paths) is wrong ;)&lt;br /&gt;
* To see the ''cmake-command'' that corresponds to the configuration you have just set in cmake-gui: Tools/Show my changes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Available features (for armadeus-4.0 release or former) ===&lt;br /&gt;
CMake looks for all required tool in the path specified in [[CMake#The_toolchain_file| toolchainfile.cmake]]; therefore, some options, targets, libraries, ... are not available:&lt;br /&gt;
&lt;br /&gt;
* Build:&lt;br /&gt;
** Latex Doc            : Not available in Buildroot&lt;br /&gt;
** New Python support   : Not available (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Swing Python support : Not available (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Octave support       : Not available in Buildroot&lt;br /&gt;
* Python&lt;br /&gt;
** Executable           : Not found (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Include dirs.        : Found&lt;br /&gt;
** Library              : Not found (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
* With&lt;br /&gt;
** V4L                  : Disable it (Buildroot provides it, but linker failed)&lt;br /&gt;
* OpenCV&lt;br /&gt;
** 3rd party libs.      : You can enable it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|You may need to enable some packages in your Armadeus configuration to get some libraries (libjpeg, libpng and libtiff) found by CMake.}}&lt;br /&gt;
&lt;br /&gt;
== Run OpenCV applications on your APF-board ==&lt;br /&gt;
# In the ''build'' directory, you should find a ''bin'' and a ''lib'' sub-directories. Copy them (at least the ''lib'' directory) on your target.&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=/path/to/the/OpenCVlibdir&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Run your application. You can try ''cvtest'' (some tests may fail because of missing resources),  it will take a while... a long while ;)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://opencv.willowgarage.com/wiki/InstallGuide OpenCV install guide]&lt;br /&gt;
&lt;br /&gt;
= Appendices =&lt;br /&gt;
== OpenCV-2.3.1.patch ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
Index: src/OpenCV-2.3.1/modules/flann/include/opencv2/flann/dist.h&lt;br /&gt;
===================================================================&lt;br /&gt;
--- src/OpenCV-2.3.1/modules/flann/include/opencv2/flann/dist.h	2011-09-12 20:42:27.000000000 +0200&lt;br /&gt;
+++ src/OpenCV-2.3.1/modules/flann/include/opencv2/flann/dist.h	2012-02-05 15:10:28.715982724 +0100&lt;br /&gt;
@@ -60,7 +60,7 @@&lt;br /&gt;
 inline double abs&amp;lt;double&amp;gt;(double x) { return fabs(x); }&lt;br /&gt;
 &lt;br /&gt;
 template&amp;lt;&amp;gt;&lt;br /&gt;
-inline long double abs&amp;lt;long double&amp;gt;(long double x) { return fabsl(x); }&lt;br /&gt;
+inline long double abs&amp;lt;long double&amp;gt;(long double x) { return fabs(x); }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 template&amp;lt;typename T&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== OpenCV-2.1.0.patch ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/flann/constants.h.origin	2010-06-08 01:14:22.171416516 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/flann/constants.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -41,7 +41,7 @@ enum flann_algorithm_t {&lt;br /&gt;
 	KMEANS = 2,&lt;br /&gt;
 	COMPOSITE = 3,&lt;br /&gt;
 	SAVED = 254,&lt;br /&gt;
-	AUTOTUNED = 255,&lt;br /&gt;
+	AUTOTUNED = 255&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 enum flann_centers_init_t {&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/flann/flann.h.origin	2010-06-08 01:14:32.588443815 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/flann/flann.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -267,7 +267,7 @@ LIBSPEC int flann_compute_cluster_center&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #ifdef __cplusplus&lt;br /&gt;
-};&lt;br /&gt;
+}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;flann.hpp&amp;quot;&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/include/flann/constants.h.origin	2010-06-08 01:14:54.503416676 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/include/flann/constants.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -41,7 +41,7 @@ enum flann_algorithm_t {&lt;br /&gt;
 	KMEANS = 2,&lt;br /&gt;
 	COMPOSITE = 3,&lt;br /&gt;
 	SAVED = 254,&lt;br /&gt;
-	AUTOTUNED = 255,&lt;br /&gt;
+	AUTOTUNED = 255&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 enum flann_centers_init_t {&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/include/flann/flann.h.origin	2010-06-08 01:14:44.672417690 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/include/flann/flann.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -267,7 +267,7 @@ LIBSPEC int flann_compute_cluster_center&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #ifdef __cplusplus&lt;br /&gt;
-};&lt;br /&gt;
+}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;flann.hpp&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== opencv_example ==&lt;br /&gt;
=== Makefile ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
CC=../../host/usr/bin/arm-unknown-linux-uclibcgnueabi-gcc&lt;br /&gt;
all:&lt;br /&gt;
        $(CC) -Wall -o opencv_example -L../../staging/usr/lib/ -I../../staging/usr/include/ -lopencv_highgui opencv_example.c&lt;br /&gt;
clean:&lt;br /&gt;
        rm -rf opencv_example&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== opencv_example.c ===&lt;br /&gt;
&amp;lt;source lang=C&amp;gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;time.h&amp;gt;&lt;br /&gt;
#include &amp;lt;opencv/cv.h&amp;gt;&lt;br /&gt;
#include &amp;lt;opencv/highgui.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    CvCapture* capture = cvCreateCameraCapture(CV_CAP_V4L2);&lt;br /&gt;
    IplImage *img;&lt;br /&gt;
&lt;br /&gt;
    if(!capture) {&lt;br /&gt;
        printf(&amp;quot;Can't get capture device\n&amp;quot;);&lt;br /&gt;
        exit(EXIT_FAILURE);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Grab some picture because the first ones is very dark */&lt;br /&gt;
    while (clock() / CLOCKS_PER_SEC &amp;lt; 3)&lt;br /&gt;
        cvGrabFrame(capture);&lt;br /&gt;
&lt;br /&gt;
    /* Get one picture and save it as test.jpg */&lt;br /&gt;
    img = cvRetrieveFrame(capture, 0);&lt;br /&gt;
    cvSaveImage(&amp;quot;test.jpg&amp;quot;, img, 0);&lt;br /&gt;
&lt;br /&gt;
  cvReleaseImage(&amp;amp;img );&lt;br /&gt;
  cvReleaseCapture(&amp;amp;capture);&lt;br /&gt;
&lt;br /&gt;
  return EXIT_SUCCESS;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Category: Software]]&lt;br /&gt;
[[Category: Video]]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OpenCV&amp;diff=10633</id>
		<title>OpenCV</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OpenCV&amp;diff=10633"/>
				<updated>2012-02-13T18:02:21Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Compiling and installing OpenCV-2.3.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OpenCV 2.3 =&lt;br /&gt;
&lt;br /&gt;
The buildroot openCV package is not available yet in the buildroot version used by ARMadeus, however I will explain a little workaround to cross-compile this graphical library and use it on your ARMadeus plateform. I was inspired by the Opencv 2.1 section downwards.&lt;br /&gt;
&lt;br /&gt;
This section has been written using an APF51 with the git-trunk ARMadeus version.&lt;br /&gt;
&lt;br /&gt;
== Buildroot configuration ==&lt;br /&gt;
&lt;br /&gt;
*Install lib4vl&lt;br /&gt;
In your armadeus directory:&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;host&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
  Hardware handling  ---&amp;gt;&lt;br /&gt;
    [*] libv4l&lt;br /&gt;
      [*]   v4l2-ctl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Take a look in...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
  Libraries  ---&amp;gt;&lt;br /&gt;
    Graphics  ---&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... if the interesting format (jpg, png etc ...) for your application is checked.&lt;br /&gt;
&lt;br /&gt;
== Compiling and installing OpenCV-2.3.1 ==&lt;br /&gt;
&lt;br /&gt;
*Prepare the directories&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ mkdir OpenCV-2.3.1&lt;br /&gt;
$ cd OpenCV-2.3.1&lt;br /&gt;
$ mkdir build&lt;br /&gt;
$ mkdir src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get the source&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cd src&lt;br /&gt;
$ wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.3.1/OpenCV-2.3.1a.tar.bz2&lt;br /&gt;
$ tar xvjf OpenCV-2.3.1a.tar.bz2&lt;br /&gt;
$ cd ../&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Patch the source&lt;br /&gt;
This (dirty?) patch fix a compatibility problem with the long double type on ARM plateforme (fabsl not available).&lt;br /&gt;
&lt;br /&gt;
[[#OpenCV-2.3.1.patch| OpenCV-2.3.1.patch]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ patch -p0 OpenCV-2.3.1.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Build Makefile from CMake&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cd build&lt;br /&gt;
$ cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_TOOLCHAIN_FILE:PATH=your_armadeus_directory/buildroot/output/toolchainfile.cmake -DCMAKE_INSTALL_PREFIX=your_armadeus_directory/buildroot/output/staging/usr/ -DCMAKE_BUILD_TYPE=RELEASE ../src/OpenCV-2.3.1/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if no error and the install path.&lt;br /&gt;
You can configure your OpenCV compilation with...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cmake-gui&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Build OpenCV-2.3.1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Copy the libraries into your rootfs filesystem.&lt;br /&gt;
In your armadeus directory:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cp buildroot/output/staging/usr/lib/libopencv_* buildroot/output/target/usr/lib/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test &amp;amp; example ==&lt;br /&gt;
&lt;br /&gt;
This test was made with a Logitech QuickCam Communicate STX.&lt;br /&gt;
&lt;br /&gt;
=== Configure your Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
In your armadeus directory:&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;
Check if the V4L driver is correctly checked:&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;
  &amp;lt;M&amp;gt; Multimedia support  ---&amp;gt;&lt;br /&gt;
     &amp;lt;M&amp;gt;   Video For Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And configure your driver, in our case for the Logitech QuickCam Communicate STX:&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;
  &amp;lt;M&amp;gt; Multimedia support  ---&amp;gt;&lt;br /&gt;
     [*]   Video capture adapters  ---&amp;gt;&lt;br /&gt;
       [*]   V4L USB devices  ---&amp;gt;&lt;br /&gt;
         &amp;lt;M&amp;gt;   GSPCA based webcams  ---&amp;gt;&lt;br /&gt;
           &amp;lt;M&amp;gt;   ZC3XX USB Camera Driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reflash kernel and rootfs.&lt;br /&gt;
&lt;br /&gt;
== Build your application ==&lt;br /&gt;
&lt;br /&gt;
In your armadeus directory&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cd buildroot/output/build&lt;br /&gt;
$ mkdir opencv_example&lt;br /&gt;
$ cd opencv_example&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory, copy these files:&lt;br /&gt;
&lt;br /&gt;
[[#Makefile| Makefile]]&lt;br /&gt;
&lt;br /&gt;
[[#opencv_example.c| opencv_example]]&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;
== Run the application test ==&lt;br /&gt;
&lt;br /&gt;
On your APF board&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe videodev&lt;br /&gt;
# modprobe gspca_zc3xx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where gspca_zc3xx corresponding to my logitech webcam.&lt;br /&gt;
&lt;br /&gt;
Then run the opencv_example application et check the picture test.jpg.&lt;br /&gt;
&lt;br /&gt;
= OpenCV 2.1 =&lt;br /&gt;
{{Under_Construction}}&lt;br /&gt;
== Forewords ==&lt;br /&gt;
This section explains how to (cross-)compile [http://opencv.willowgarage.com/wiki OpenCV] 2.1.0 or later for your APF-board.&lt;br /&gt;
&lt;br /&gt;
== Pre-requisite ==&lt;br /&gt;
The CMake infrastructure has been integrated in Buildroot since the [http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.02 BR release 2011.02].&lt;br /&gt;
&lt;br /&gt;
The CMake infrastructure is available in armadeus SDK since the &lt;br /&gt;
[http://armadeus.git.sourceforge.net/git/gitweb.cgi?p=armadeus/armadeus;a=blob;f=ChangeLog;hb=cbc69e2606aeb8ad56701b3191e9632dc8358653 armadeus-4.1 release] (since it is based on BR release 2011.05).&lt;br /&gt;
&lt;br /&gt;
{{Note|Using elder armadeus SDK requires having [[CMake]] 2.6 or later installed on the host system.}}&lt;br /&gt;
&lt;br /&gt;
== Build OpenCV ==&lt;br /&gt;
&lt;br /&gt;
{{Note|The tutorial hereafter (patch and OpenCV configuration) is for the OpenCV 2.1.0 release.&lt;br /&gt;
&lt;br /&gt;
This may changes in newer OpenCV releases. Updates are welcome ;-)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
# Setup the CMake toolchain file:&lt;br /&gt;
## '''Using armadeus-4.1 SDK or later (or git view):''' this file is generated by buildroot and is located in ''armadeus-4.1/buildroot/output/toolchainfile.cmake''.&lt;br /&gt;
## '''Using armadeus-4.0 SDK or former:''' the [[CMake#The_toolchain_file| toolchainfile.cmake]] must be manually edited.&lt;br /&gt;
# Create source and build directories &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -pv opencv-on-armadeus/{src,build}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Grab the OpenCV source archive.&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd opencv-on-armadeus/src &amp;amp;&amp;amp; wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.1/OpenCV-2.1.0.tar.bz2 &amp;amp;&amp;amp; tar xvvjf OpenCV-2.1.0.tar.bz2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Here, you'll have to apply [[#OpenCV-2.1.0.patch| this patch]] to avoid compilation failed: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
patch -p0 &amp;lt; OpenCV-2.1.0.patch&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Run CMake (generate Makefiles)&lt;br /&gt;
##  &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/opencv-on-armadeus/build &amp;amp;&amp;amp; cmake -DCMAKE_TOOLCHAIN_FILE:PATH=/path/to/toolchainfile.cmake ../src/OpenCV-2.1.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
##It will certainly complain about unfound libraries and some other things, so adjust these things running:&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cmake-gui&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Compile OpenCV libraries &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
VERBOSE=1 make&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|'''cmake-gui'''&lt;br /&gt;
&lt;br /&gt;
* Click twice on ''Configure'' when you change something.&lt;br /&gt;
* When configuring exit without any error, click on ''Generate'' to generate Makefiles.&lt;br /&gt;
* If your configuration is too messy, reset it by deleting the cache (File/Delete Cache) or remove the ''CMakeCache.txt'' file in the build directory. Don't hesitate to do so if something (eg. paths) is wrong ;)&lt;br /&gt;
* To see the ''cmake-command'' that corresponds to the configuration you have just set in cmake-gui: Tools/Show my changes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Available features (for armadeus-4.0 release or former) ===&lt;br /&gt;
CMake looks for all required tool in the path specified in [[CMake#The_toolchain_file| toolchainfile.cmake]]; therefore, some options, targets, libraries, ... are not available:&lt;br /&gt;
&lt;br /&gt;
* Build:&lt;br /&gt;
** Latex Doc            : Not available in Buildroot&lt;br /&gt;
** New Python support   : Not available (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Swing Python support : Not available (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Octave support       : Not available in Buildroot&lt;br /&gt;
* Python&lt;br /&gt;
** Executable           : Not found (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Include dirs.        : Found&lt;br /&gt;
** Library              : Not found (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
* With&lt;br /&gt;
** V4L                  : Disable it (Buildroot provides it, but linker failed)&lt;br /&gt;
* OpenCV&lt;br /&gt;
** 3rd party libs.      : You can enable it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|You may need to enable some packages in your Armadeus configuration to get some libraries (libjpeg, libpng and libtiff) found by CMake.}}&lt;br /&gt;
&lt;br /&gt;
== Run OpenCV applications on your APF-board ==&lt;br /&gt;
# In the ''build'' directory, you should find a ''bin'' and a ''lib'' sub-directories. Copy them (at least the ''lib'' directory) on your target.&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=/path/to/the/OpenCVlibdir&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Run your application. You can try ''cvtest'' (some tests may fail because of missing resources),  it will take a while... a long while ;)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://opencv.willowgarage.com/wiki/InstallGuide OpenCV install guide]&lt;br /&gt;
&lt;br /&gt;
= Appendices =&lt;br /&gt;
== OpenCV-2.3.1.patch ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
Index: src/OpenCV-2.3.1/modules/flann/include/opencv2/flann/dist.h&lt;br /&gt;
===================================================================&lt;br /&gt;
--- src/OpenCV-2.3.1/modules/flann/include/opencv2/flann/dist.h	2011-09-12 20:42:27.000000000 +0200&lt;br /&gt;
+++ src/OpenCV-2.3.1/modules/flann/include/opencv2/flann/dist.h	2012-02-05 15:10:28.715982724 +0100&lt;br /&gt;
@@ -60,7 +60,7 @@&lt;br /&gt;
 inline double abs&amp;lt;double&amp;gt;(double x) { return fabs(x); }&lt;br /&gt;
 &lt;br /&gt;
 template&amp;lt;&amp;gt;&lt;br /&gt;
-inline long double abs&amp;lt;long double&amp;gt;(long double x) { return fabsl(x); }&lt;br /&gt;
+inline long double abs&amp;lt;long double&amp;gt;(long double x) { return fabs(x); }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 template&amp;lt;typename T&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== OpenCV-2.1.0.patch ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/flann/constants.h.origin	2010-06-08 01:14:22.171416516 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/flann/constants.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -41,7 +41,7 @@ enum flann_algorithm_t {&lt;br /&gt;
 	KMEANS = 2,&lt;br /&gt;
 	COMPOSITE = 3,&lt;br /&gt;
 	SAVED = 254,&lt;br /&gt;
-	AUTOTUNED = 255,&lt;br /&gt;
+	AUTOTUNED = 255&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 enum flann_centers_init_t {&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/flann/flann.h.origin	2010-06-08 01:14:32.588443815 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/flann/flann.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -267,7 +267,7 @@ LIBSPEC int flann_compute_cluster_center&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #ifdef __cplusplus&lt;br /&gt;
-};&lt;br /&gt;
+}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;flann.hpp&amp;quot;&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/include/flann/constants.h.origin	2010-06-08 01:14:54.503416676 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/include/flann/constants.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -41,7 +41,7 @@ enum flann_algorithm_t {&lt;br /&gt;
 	KMEANS = 2,&lt;br /&gt;
 	COMPOSITE = 3,&lt;br /&gt;
 	SAVED = 254,&lt;br /&gt;
-	AUTOTUNED = 255,&lt;br /&gt;
+	AUTOTUNED = 255&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 enum flann_centers_init_t {&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/include/flann/flann.h.origin	2010-06-08 01:14:44.672417690 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/include/flann/flann.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -267,7 +267,7 @@ LIBSPEC int flann_compute_cluster_center&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #ifdef __cplusplus&lt;br /&gt;
-};&lt;br /&gt;
+}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;flann.hpp&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== opencv_example ==&lt;br /&gt;
=== Makefile ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
CC=../../host/usr/bin/arm-unknown-linux-uclibcgnueabi-gcc&lt;br /&gt;
all:&lt;br /&gt;
        $(CC) -Wall -o opencv_example -L../../staging/usr/lib/ -I../../staging/usr/include/ -lopencv_highgui opencv_example.c&lt;br /&gt;
clean:&lt;br /&gt;
        rm -rf opencv_example&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== opencv_example.c ===&lt;br /&gt;
&amp;lt;source lang=C&amp;gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;time.h&amp;gt;&lt;br /&gt;
#include &amp;lt;opencv/cv.h&amp;gt;&lt;br /&gt;
#include &amp;lt;opencv/highgui.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    CvCapture* capture = cvCreateCameraCapture(CV_CAP_V4L2);&lt;br /&gt;
    IplImage *img;&lt;br /&gt;
&lt;br /&gt;
    if(!capture) {&lt;br /&gt;
        printf(&amp;quot;Can't get capture device\n&amp;quot;);&lt;br /&gt;
        exit(EXIT_FAILURE);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Grab some picture because the first ones is very dark */&lt;br /&gt;
    while (clock() / CLOCKS_PER_SEC &amp;lt; 3)&lt;br /&gt;
        cvGrabFrame(capture);&lt;br /&gt;
&lt;br /&gt;
    /* Get one picture and save it as test.jpg */&lt;br /&gt;
    img = cvRetrieveFrame(capture, 0);&lt;br /&gt;
    cvSaveImage(&amp;quot;test.jpg&amp;quot;, img, 0);&lt;br /&gt;
&lt;br /&gt;
  cvReleaseImage(&amp;amp;img );&lt;br /&gt;
  cvReleaseCapture(&amp;amp;capture);&lt;br /&gt;
&lt;br /&gt;
  return EXIT_SUCCESS;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Category: Software]]&lt;br /&gt;
[[Category: Video]]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OpenCV&amp;diff=10604</id>
		<title>OpenCV</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OpenCV&amp;diff=10604"/>
				<updated>2012-02-05T16:25:00Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OpenCV 2.3 =&lt;br /&gt;
&lt;br /&gt;
The buildroot openCV package is not available yet in the buildroot version used by ARMadeus, however I will explain a little workaround to cross-compile this graphical library and use it on your ARMadeus plateform. I was inspired by the Opencv 2.1 section downwards.&lt;br /&gt;
&lt;br /&gt;
This section has been written using an APF51 with the git-trunk ARMadeus version.&lt;br /&gt;
&lt;br /&gt;
== Buildroot configuration ==&lt;br /&gt;
&lt;br /&gt;
*Install lib4vl&lt;br /&gt;
In your armadeus directory:&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;host&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
  Hardware handling  ---&amp;gt;&lt;br /&gt;
    [*] libv4l&lt;br /&gt;
      [*]   v4l2-ctl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Take a look in...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
  Libraries  ---&amp;gt;&lt;br /&gt;
    Graphics  ---&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... if the interesting format (jpg, png etc ...) for your application is checked.&lt;br /&gt;
&lt;br /&gt;
== Compiling and installing OpenCV-2.3.1 ==&lt;br /&gt;
&lt;br /&gt;
*Prepare the directories&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ mkdir OpenCV-2.3.1&lt;br /&gt;
$ cd OpenCV-2.3.1&lt;br /&gt;
$ mkdir build&lt;br /&gt;
$ mkdir src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Get the source&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cd src&lt;br /&gt;
$ wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.3.1/OpenCV-2.3.1a.tar.bz2&lt;br /&gt;
$ tar xvvjf OpenCV-2.3.1a.tar.bz2&lt;br /&gt;
$ cd ../&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Patch the source&lt;br /&gt;
This (dirty?) patch fix a compatibility problem with the long double type on ARM plateforme (fabsl not available).&lt;br /&gt;
&lt;br /&gt;
[[#OpenCV-2.3.1.patch| OpenCV-2.3.1.patch]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ patch -p0 OpenCV-2.3.1.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Build Makefile from CMake&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cd build&lt;br /&gt;
$ cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_TOOLCHAIN_FILE:PATH=your_armadeus_directory/buildroot/output/toolchainfile.cmake -DCMAKE_INSTALL_PREFIX=your_armadeus_directory/buildroot/output/staging/usr/ -DCMAKE_BUILD_TYPE=RELEASE ../src/OpenCV-2.3.1/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if no error and the install path.&lt;br /&gt;
You can configure your OpenCV compilation with...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cmake-gui&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Build OpenCV-2.3.1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Copy the libraries into your rootfs filesystem.&lt;br /&gt;
In your armadeus directory:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cp buildroot/output/staging/usr/lib/libopencv_* buildroot/output/target/usr/lib/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test &amp;amp; example ==&lt;br /&gt;
&lt;br /&gt;
This test was made with a Logitech QuickCam Communicate STX.&lt;br /&gt;
&lt;br /&gt;
=== Configure your Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
In your armadeus directory:&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;
Check if the V4L driver is correctly checked:&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;
  &amp;lt;M&amp;gt; Multimedia support  ---&amp;gt;&lt;br /&gt;
     &amp;lt;M&amp;gt;   Video For Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And configure your driver, in our case for the Logitech QuickCam Communicate STX:&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;
  &amp;lt;M&amp;gt; Multimedia support  ---&amp;gt;&lt;br /&gt;
     [*]   Video capture adapters  ---&amp;gt;&lt;br /&gt;
       [*]   V4L USB devices  ---&amp;gt;&lt;br /&gt;
         &amp;lt;M&amp;gt;   GSPCA based webcams  ---&amp;gt;&lt;br /&gt;
           &amp;lt;M&amp;gt;   ZC3XX USB Camera Driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reflash kernel and rootfs.&lt;br /&gt;
&lt;br /&gt;
== Build your application ==&lt;br /&gt;
&lt;br /&gt;
In your armadeus directory&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cd buildroot/output/build&lt;br /&gt;
$ mkdir opencv_example&lt;br /&gt;
$ cd opencv_example&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory, copy these files:&lt;br /&gt;
&lt;br /&gt;
[[#Makefile| Makefile]]&lt;br /&gt;
&lt;br /&gt;
[[#opencv_example.c| opencv_example]]&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;
== Run the application test ==&lt;br /&gt;
&lt;br /&gt;
On your APF board&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe videodev&lt;br /&gt;
# modprobe gspca_zc3xx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where gspca_zc3xx corresponding to my logitech webcam.&lt;br /&gt;
&lt;br /&gt;
Then run the opencv_example application et check the picture test.jpg.&lt;br /&gt;
&lt;br /&gt;
= OpenCV 2.1 =&lt;br /&gt;
{{Under_Construction}}&lt;br /&gt;
== Forewords ==&lt;br /&gt;
This section explains how to (cross-)compile [http://opencv.willowgarage.com/wiki OpenCV] 2.1.0 or later for your APF-board.&lt;br /&gt;
&lt;br /&gt;
== Pre-requisite ==&lt;br /&gt;
The CMake infrastructure has been integrated in Buildroot since the [http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.02 BR release 2011.02].&lt;br /&gt;
&lt;br /&gt;
The CMake infrastructure is available in armadeus SDK since the &lt;br /&gt;
[http://armadeus.git.sourceforge.net/git/gitweb.cgi?p=armadeus/armadeus;a=blob;f=ChangeLog;hb=cbc69e2606aeb8ad56701b3191e9632dc8358653 armadeus-4.1 release] (since it is based on BR release 2011.05).&lt;br /&gt;
&lt;br /&gt;
{{Note|Using elder armadeus SDK requires having [[CMake]] 2.6 or later installed on the host system.}}&lt;br /&gt;
&lt;br /&gt;
== Build OpenCV ==&lt;br /&gt;
&lt;br /&gt;
{{Note|The tutorial hereafter (patch and OpenCV configuration) is for the OpenCV 2.1.0 release.&lt;br /&gt;
&lt;br /&gt;
This may changes in newer OpenCV releases. Updates are welcome ;-)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
# Setup the CMake toolchain file:&lt;br /&gt;
## '''Using armadeus-4.1 SDK or later (or git view):''' this file is generated by buildroot and is located in ''armadeus-4.1/buildroot/output/toolchainfile.cmake''.&lt;br /&gt;
## '''Using armadeus-4.0 SDK or former:''' the [[CMake#The_toolchain_file| toolchainfile.cmake]] must be manually edited.&lt;br /&gt;
# Create source and build directories &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -pv opencv-on-armadeus/{src,build}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Grab the OpenCV source archive.&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd opencv-on-armadeus/src &amp;amp;&amp;amp; wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.1/OpenCV-2.1.0.tar.bz2 &amp;amp;&amp;amp; tar xvvjf OpenCV-2.1.0.tar.bz2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Here, you'll have to apply [[#OpenCV-2.1.0.patch| this patch]] to avoid compilation failed: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
patch -p0 &amp;lt; OpenCV-2.1.0.patch&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Run CMake (generate Makefiles)&lt;br /&gt;
##  &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/opencv-on-armadeus/build &amp;amp;&amp;amp; cmake -DCMAKE_TOOLCHAIN_FILE:PATH=/path/to/toolchainfile.cmake ../src/OpenCV-2.1.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
##It will certainly complain about unfound libraries and some other things, so adjust these things running:&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cmake-gui&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Compile OpenCV libraries &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
VERBOSE=1 make&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|'''cmake-gui'''&lt;br /&gt;
&lt;br /&gt;
* Click twice on ''Configure'' when you change something.&lt;br /&gt;
* When configuring exit without any error, click on ''Generate'' to generate Makefiles.&lt;br /&gt;
* If your configuration is too messy, reset it by deleting the cache (File/Delete Cache) or remove the ''CMakeCache.txt'' file in the build directory. Don't hesitate to do so if something (eg. paths) is wrong ;)&lt;br /&gt;
* To see the ''cmake-command'' that corresponds to the configuration you have just set in cmake-gui: Tools/Show my changes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Available features (for armadeus-4.0 release or former) ===&lt;br /&gt;
CMake looks for all required tool in the path specified in [[CMake#The_toolchain_file| toolchainfile.cmake]]; therefore, some options, targets, libraries, ... are not available:&lt;br /&gt;
&lt;br /&gt;
* Build:&lt;br /&gt;
** Latex Doc            : Not available in Buildroot&lt;br /&gt;
** New Python support   : Not available (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Swing Python support : Not available (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Octave support       : Not available in Buildroot&lt;br /&gt;
* Python&lt;br /&gt;
** Executable           : Not found (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Include dirs.        : Found&lt;br /&gt;
** Library              : Not found (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
* With&lt;br /&gt;
** V4L                  : Disable it (Buildroot provides it, but linker failed)&lt;br /&gt;
* OpenCV&lt;br /&gt;
** 3rd party libs.      : You can enable it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|You may need to enable some packages in your Armadeus configuration to get some libraries (libjpeg, libpng and libtiff) found by CMake.}}&lt;br /&gt;
&lt;br /&gt;
== Run OpenCV applications on your APF-board ==&lt;br /&gt;
# In the ''build'' directory, you should find a ''bin'' and a ''lib'' sub-directories. Copy them (at least the ''lib'' directory) on your target.&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=/path/to/the/OpenCVlibdir&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Run your application. You can try ''cvtest'' (some tests may fail because of missing resources),  it will take a while... a long while ;)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://opencv.willowgarage.com/wiki/InstallGuide OpenCV install guide]&lt;br /&gt;
&lt;br /&gt;
= Appendices =&lt;br /&gt;
== OpenCV-2.3.1.patch ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
Index: src/OpenCV-2.3.1/modules/flann/include/opencv2/flann/dist.h&lt;br /&gt;
===================================================================&lt;br /&gt;
--- src/OpenCV-2.3.1/modules/flann/include/opencv2/flann/dist.h	2011-09-12 20:42:27.000000000 +0200&lt;br /&gt;
+++ src/OpenCV-2.3.1/modules/flann/include/opencv2/flann/dist.h	2012-02-05 15:10:28.715982724 +0100&lt;br /&gt;
@@ -60,7 +60,7 @@&lt;br /&gt;
 inline double abs&amp;lt;double&amp;gt;(double x) { return fabs(x); }&lt;br /&gt;
 &lt;br /&gt;
 template&amp;lt;&amp;gt;&lt;br /&gt;
-inline long double abs&amp;lt;long double&amp;gt;(long double x) { return fabsl(x); }&lt;br /&gt;
+inline long double abs&amp;lt;long double&amp;gt;(long double x) { return fabs(x); }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 template&amp;lt;typename T&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== OpenCV-2.1.0.patch ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/flann/constants.h.origin	2010-06-08 01:14:22.171416516 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/flann/constants.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -41,7 +41,7 @@ enum flann_algorithm_t {&lt;br /&gt;
 	KMEANS = 2,&lt;br /&gt;
 	COMPOSITE = 3,&lt;br /&gt;
 	SAVED = 254,&lt;br /&gt;
-	AUTOTUNED = 255,&lt;br /&gt;
+	AUTOTUNED = 255&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 enum flann_centers_init_t {&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/flann/flann.h.origin	2010-06-08 01:14:32.588443815 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/flann/flann.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -267,7 +267,7 @@ LIBSPEC int flann_compute_cluster_center&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #ifdef __cplusplus&lt;br /&gt;
-};&lt;br /&gt;
+}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;flann.hpp&amp;quot;&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/include/flann/constants.h.origin	2010-06-08 01:14:54.503416676 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/include/flann/constants.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -41,7 +41,7 @@ enum flann_algorithm_t {&lt;br /&gt;
 	KMEANS = 2,&lt;br /&gt;
 	COMPOSITE = 3,&lt;br /&gt;
 	SAVED = 254,&lt;br /&gt;
-	AUTOTUNED = 255,&lt;br /&gt;
+	AUTOTUNED = 255&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 enum flann_centers_init_t {&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/include/flann/flann.h.origin	2010-06-08 01:14:44.672417690 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/include/flann/flann.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -267,7 +267,7 @@ LIBSPEC int flann_compute_cluster_center&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #ifdef __cplusplus&lt;br /&gt;
-};&lt;br /&gt;
+}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;flann.hpp&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== opencv_example ==&lt;br /&gt;
=== Makefile ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
CC=../../host/usr/bin/arm-unknown-linux-uclibcgnueabi-gcc&lt;br /&gt;
all:&lt;br /&gt;
        $(CC) -Wall -o opencv_example -L../../staging/usr/lib/ -I../../staging/usr/include/ -lopencv_highgui opencv_example.c&lt;br /&gt;
clean:&lt;br /&gt;
        rm -rf opencv_example&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== opencv_example.c ===&lt;br /&gt;
&amp;lt;source lang=C&amp;gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;time.h&amp;gt;&lt;br /&gt;
#include &amp;lt;opencv/cv.h&amp;gt;&lt;br /&gt;
#include &amp;lt;opencv/highgui.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    CvCapture* capture = cvCreateCameraCapture(CV_CAP_V4L2);&lt;br /&gt;
    IplImage *img;&lt;br /&gt;
&lt;br /&gt;
    if(!capture) {&lt;br /&gt;
        printf(&amp;quot;Can't get capture device\n&amp;quot;);&lt;br /&gt;
        exit(EXIT_FAILURE);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Grab some picture because the first ones is very dark */&lt;br /&gt;
    while (clock() / CLOCKS_PER_SEC &amp;lt; 3)&lt;br /&gt;
        cvGrabFrame(capture);&lt;br /&gt;
&lt;br /&gt;
    /* Get one picture and save it as test.jpg */&lt;br /&gt;
    img = cvRetrieveFrame(capture, 0);&lt;br /&gt;
    cvSaveImage(&amp;quot;test.jpg&amp;quot;, img, 0);&lt;br /&gt;
&lt;br /&gt;
  cvReleaseImage(&amp;amp;img );&lt;br /&gt;
  cvReleaseCapture(&amp;amp;capture);&lt;br /&gt;
&lt;br /&gt;
  return EXIT_SUCCESS;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Category: Software]]&lt;br /&gt;
[[Category: Video]]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=Robotic&amp;diff=10603</id>
		<title>Robotic</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=Robotic&amp;diff=10603"/>
				<updated>2012-02-05T10:41:05Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Robotic experience */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Robotic experience ==&lt;br /&gt;
&lt;br /&gt;
Some «[http://www.planete-sciences.org/robot/index.php?section=pages&amp;amp;pageid=79 la coupe de robotique]» teams use ARMadeus boards for their robots:&lt;br /&gt;
&lt;br /&gt;
* [http://www.robotter.fr Rob'Otter]&lt;br /&gt;
* [http://clubrobotique.free.fr/ Robotnik]&lt;br /&gt;
* [http://tools.assembla.com/pmx/wiki PM-ROBOTIX] with an APF9328&lt;br /&gt;
* [http://beach-bot.p1.fr/ BeachBot] with both APF9328 &amp;amp; APF27&lt;br /&gt;
* [http://eirbot.enseirb.fr/ Eirbot] With APF27.&lt;br /&gt;
* And maybe others&lt;br /&gt;
&lt;br /&gt;
== Robotic project ==&lt;br /&gt;
* [[MotionSystem| R/C Servos Controller, Winner of the Armadeus Project contest 2009]]&lt;br /&gt;
* [[Specifications for a robotic card]]&lt;br /&gt;
&lt;br /&gt;
==Building blocks==&lt;br /&gt;
&lt;br /&gt;
===Vision===&lt;br /&gt;
* [[Camera interface|How to use the camera interface (CSI) on your APF]]&lt;br /&gt;
* [[C38A|Lextronic's C38A camera module experiments]]&lt;br /&gt;
&lt;br /&gt;
===Sensors driving===&lt;br /&gt;
* [[I2C|I2C bus usage]]&lt;br /&gt;
* [[URG laser]]&lt;br /&gt;
&lt;br /&gt;
===Remote control===&lt;br /&gt;
* [[Wiimote]]&lt;br /&gt;
&lt;br /&gt;
==Ideas==&lt;br /&gt;
* [http://agate.msoe.edu/gf/project/wiicam/ WiiCam (robot controlled by WiFi and sending realtime video)]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OpenCV&amp;diff=10600</id>
		<title>OpenCV</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OpenCV&amp;diff=10600"/>
				<updated>2012-02-04T19:28:34Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Build OpenCV */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Under_Construction}}&lt;br /&gt;
== Forewords ==&lt;br /&gt;
This page explains how to (cross-)compile [http://opencv.willowgarage.com/wiki OpenCV 2.1.0] for your APF-board.&lt;br /&gt;
&lt;br /&gt;
== Pre-requisite ==&lt;br /&gt;
You need to have [[CMake]] &amp;gt;=2.6 installed on your system.&lt;br /&gt;
&lt;br /&gt;
== Build OpenCV ==&lt;br /&gt;
# Edit your [[CMake#The_toolchain_file| toolchain.cmake file]]&lt;br /&gt;
# Create source and build directories &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -pv opencv-on-armadeus/{src,build}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Grab the source archive &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd opencv-on-armadeus/src &amp;amp;&amp;amp; wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.1/OpenCV-2.1.0.tar.bz2 &amp;amp;&amp;amp; tar xvvjf OpenCV-2.1.0.tar.bz2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Here, you'll have to apply [[#OpenCV-2.1.0.patch| this patch]] to avoid compilation failed: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
patch -p0 &amp;lt; OpenCV-2.1.0.patch&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Run CMake (generate Makefiles)&lt;br /&gt;
##  &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/opencv-on-armadeus/build &amp;amp;&amp;amp; cmake -DCMAKE_TOOLCHAIN_FILE:PATH=/path/to/toolchain.cmake ../src/OpenCV-2.1.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
##It will certainly complain about unfound libraries and some other things, so adjust these things running:&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cmake-gui&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Compile OpenCV libraries &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
VERBOSE=1 make&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|'''cmake-gui'''&lt;br /&gt;
&lt;br /&gt;
* Click twice on ''Configure'' when you change something.&lt;br /&gt;
* When configuring exit without any error, click on ''Generate'' to generate Makefiles.&lt;br /&gt;
* If your configuration is too messy, reset it by deleting the cache (File/Delete Cache) or remove the ''CMakeCache.txt'' file in the build directory. Don't hesitate to do so if something (eg. paths) is wrong ;)&lt;br /&gt;
* To see the ''cmake-command'' that corresponds to the configuration you have just set in cmake-gui: Tools/Show my changes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Available features ===&lt;br /&gt;
CMake looks for all required tool in the path specified in [[CMake#The_toolchain_file| toolchain.cmake file]] toolchain.cmake file; therefore, some options, targets, libraries, ... are not available:&lt;br /&gt;
&lt;br /&gt;
* Build:&lt;br /&gt;
** Latex Doc            : Not available in Buildroot&lt;br /&gt;
** New Python support   : Not available (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Swing Python support : Not available (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Octave support       : Not available in Buildroot&lt;br /&gt;
* Python&lt;br /&gt;
** Executable           : Not found (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Include dirs.        : Found&lt;br /&gt;
** Library              : Not found (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
* With&lt;br /&gt;
** V4L                  : Disable it (Buildroot provides it, but linker failed)&lt;br /&gt;
* OpenCV&lt;br /&gt;
** 3rd party libs.      : You can enable it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|You may need to enable some packages in your Armadeus configuration to get some libraries (libjpeg, libpng and libtiff) found by CMake.}}&lt;br /&gt;
&lt;br /&gt;
== Run OpenCV applications on your APF-board ==&lt;br /&gt;
# In the ''build'' directory, you should find a ''bin'' and a ''lib'' sub-directories. Copy them (at least the ''lib'' directory) on your target.&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=/path/to/the/OpenCVlibdir&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Run your application. You can try ''cvtest'' (some tests may fail because of missing resources),  it will take a while... a long while ;)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://opencv.willowgarage.com/wiki/InstallGuide OpenCV install guide]&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
=== OpenCV-2.1.0.patch ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/flann/constants.h.origin	2010-06-08 01:14:22.171416516 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/flann/constants.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -41,7 +41,7 @@ enum flann_algorithm_t {&lt;br /&gt;
 	KMEANS = 2,&lt;br /&gt;
 	COMPOSITE = 3,&lt;br /&gt;
 	SAVED = 254,&lt;br /&gt;
-	AUTOTUNED = 255,&lt;br /&gt;
+	AUTOTUNED = 255&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 enum flann_centers_init_t {&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/flann/flann.h.origin	2010-06-08 01:14:32.588443815 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/flann/flann.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -267,7 +267,7 @@ LIBSPEC int flann_compute_cluster_center&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #ifdef __cplusplus&lt;br /&gt;
-};&lt;br /&gt;
+}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;flann.hpp&amp;quot;&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/include/flann/constants.h.origin	2010-06-08 01:14:54.503416676 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/include/flann/constants.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -41,7 +41,7 @@ enum flann_algorithm_t {&lt;br /&gt;
 	KMEANS = 2,&lt;br /&gt;
 	COMPOSITE = 3,&lt;br /&gt;
 	SAVED = 254,&lt;br /&gt;
-	AUTOTUNED = 255,&lt;br /&gt;
+	AUTOTUNED = 255&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 enum flann_centers_init_t {&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/include/flann/flann.h.origin	2010-06-08 01:14:44.672417690 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/include/flann/flann.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -267,7 +267,7 @@ LIBSPEC int flann_compute_cluster_center&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #ifdef __cplusplus&lt;br /&gt;
-};&lt;br /&gt;
+}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;flann.hpp&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Software]]&lt;br /&gt;
[[Category: Video]]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OpenCV&amp;diff=10599</id>
		<title>OpenCV</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OpenCV&amp;diff=10599"/>
				<updated>2012-02-04T19:18:13Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Build OpenCV */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Under_Construction}}&lt;br /&gt;
== Forewords ==&lt;br /&gt;
This page explains how to (cross-)compile [http://opencv.willowgarage.com/wiki OpenCV 2.1.0] for your APF-board.&lt;br /&gt;
&lt;br /&gt;
== Pre-requisite ==&lt;br /&gt;
You need to have [[CMake]] &amp;gt;=2.6 installed on your system.&lt;br /&gt;
&lt;br /&gt;
== Build OpenCV ==&lt;br /&gt;
# Edit your [[CMake#The_toolchain_file| toolchain.cmake file]]&lt;br /&gt;
# Create source and build directories&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -pv opencv-on-armadeus/{src,build}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Grab the source archive &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd opencv-on-armadeus/src&lt;br /&gt;
wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.1/OpenCV-2.1.0.tar.bz2&lt;br /&gt;
tar xvvjf OpenCV-2.1.0.tar.bz2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Here, you'll have to apply [[#OpenCV-2.1.0.patch| this patch]] to avoid compilation failed:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
patch -p0 &amp;lt; OpenCV-2.1.0.patch&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Run CMake (generate Makefiles)&lt;br /&gt;
## &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/opencv-on-armadeus/build &amp;amp;&amp;amp; cmake -DCMAKE_TOOLCHAIN_FILE:PATH=/path/to/toolchain.cmake ../src/OpenCV-2.1.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
##It will certainly complain about unfound libraries and some other things, so adjust these things running:&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cmake-gui&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Compile OpenCV libraries &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
VERBOSE=1 make&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|'''cmake-gui'''&lt;br /&gt;
&lt;br /&gt;
* Click twice on ''Configure'' when you change something.&lt;br /&gt;
* When configuring exit without any error, click on ''Generate'' to generate Makefiles.&lt;br /&gt;
* If your configuration is too messy, reset it by deleting the cache (File/Delete Cache) or remove the ''CMakeCache.txt'' file in the build directory. Don't hesitate to do so if something (eg. paths) is wrong ;)&lt;br /&gt;
* To see the ''cmake-command'' that corresponds to the configuration you have just set in cmake-gui: Tools/Show my changes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Available features ===&lt;br /&gt;
CMake looks for all required tool in the path specified in [[CMake#The_toolchain_file| toolchain.cmake file]] toolchain.cmake file; therefore, some options, targets, libraries, ... are not available:&lt;br /&gt;
&lt;br /&gt;
* Build:&lt;br /&gt;
** Latex Doc            : Not available in Buildroot&lt;br /&gt;
** New Python support   : Not available (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Swing Python support : Not available (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Octave support       : Not available in Buildroot&lt;br /&gt;
* Python&lt;br /&gt;
** Executable           : Not found (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Include dirs.        : Found&lt;br /&gt;
** Library              : Not found (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
* With&lt;br /&gt;
** V4L                  : Disable it (Buildroot provides it, but linker failed)&lt;br /&gt;
* OpenCV&lt;br /&gt;
** 3rd party libs.      : You can enable it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|You may need to enable some packages in your Armadeus configuration to get some libraries (libjpeg, libpng and libtiff) found by CMake.}}&lt;br /&gt;
&lt;br /&gt;
== Run OpenCV applications on your APF-board ==&lt;br /&gt;
# In the ''build'' directory, you should find a ''bin'' and a ''lib'' sub-directories. Copy them (at least the ''lib'' directory) on your target.&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=/path/to/the/OpenCVlibdir&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Run your application. You can try ''cvtest'' (some tests may fail because of missing resources),  it will take a while... a long while ;)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://opencv.willowgarage.com/wiki/InstallGuide OpenCV install guide]&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
=== OpenCV-2.1.0.patch ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/flann/constants.h.origin	2010-06-08 01:14:22.171416516 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/flann/constants.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -41,7 +41,7 @@ enum flann_algorithm_t {&lt;br /&gt;
 	KMEANS = 2,&lt;br /&gt;
 	COMPOSITE = 3,&lt;br /&gt;
 	SAVED = 254,&lt;br /&gt;
-	AUTOTUNED = 255,&lt;br /&gt;
+	AUTOTUNED = 255&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 enum flann_centers_init_t {&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/flann/flann.h.origin	2010-06-08 01:14:32.588443815 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/flann/flann.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -267,7 +267,7 @@ LIBSPEC int flann_compute_cluster_center&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #ifdef __cplusplus&lt;br /&gt;
-};&lt;br /&gt;
+}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;flann.hpp&amp;quot;&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/include/flann/constants.h.origin	2010-06-08 01:14:54.503416676 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/include/flann/constants.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -41,7 +41,7 @@ enum flann_algorithm_t {&lt;br /&gt;
 	KMEANS = 2,&lt;br /&gt;
 	COMPOSITE = 3,&lt;br /&gt;
 	SAVED = 254,&lt;br /&gt;
-	AUTOTUNED = 255,&lt;br /&gt;
+	AUTOTUNED = 255&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 enum flann_centers_init_t {&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/include/flann/flann.h.origin	2010-06-08 01:14:44.672417690 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/include/flann/flann.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -267,7 +267,7 @@ LIBSPEC int flann_compute_cluster_center&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #ifdef __cplusplus&lt;br /&gt;
-};&lt;br /&gt;
+}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;flann.hpp&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Software]]&lt;br /&gt;
[[Category: Video]]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OpenCV&amp;diff=10598</id>
		<title>OpenCV</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OpenCV&amp;diff=10598"/>
				<updated>2012-02-04T19:17:37Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Build OpenCV */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Under_Construction}}&lt;br /&gt;
== Forewords ==&lt;br /&gt;
This page explains how to (cross-)compile [http://opencv.willowgarage.com/wiki OpenCV 2.1.0] for your APF-board.&lt;br /&gt;
&lt;br /&gt;
== Pre-requisite ==&lt;br /&gt;
You need to have [[CMake]] &amp;gt;=2.6 installed on your system.&lt;br /&gt;
&lt;br /&gt;
== Build OpenCV ==&lt;br /&gt;
# Edit your [[CMake#The_toolchain_file| toolchain.cmake file]]&lt;br /&gt;
# Create source and build directories &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -pv opencv-on-armadeus/{src,build}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Grab the source archive &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd opencv-on-armadeus/src&lt;br /&gt;
wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.1/OpenCV-2.1.0.tar.bz2&lt;br /&gt;
tar xvvjf OpenCV-2.1.0.tar.bz2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Here, you'll have to apply [[#OpenCV-2.1.0.patch| this patch]] to avoid compilation failed: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
patch -p0 &amp;lt; OpenCV-2.1.0.patch&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Run CMake (generate Makefiles)&lt;br /&gt;
## &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/opencv-on-armadeus/build &amp;amp;&amp;amp; cmake -DCMAKE_TOOLCHAIN_FILE:PATH=/path/to/toolchain.cmake ../src/OpenCV-2.1.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
##It will certainly complain about unfound libraries and some other things, so adjust these things running:&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cmake-gui&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Compile OpenCV libraries &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
VERBOSE=1 make&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|'''cmake-gui'''&lt;br /&gt;
&lt;br /&gt;
* Click twice on ''Configure'' when you change something.&lt;br /&gt;
* When configuring exit without any error, click on ''Generate'' to generate Makefiles.&lt;br /&gt;
* If your configuration is too messy, reset it by deleting the cache (File/Delete Cache) or remove the ''CMakeCache.txt'' file in the build directory. Don't hesitate to do so if something (eg. paths) is wrong ;)&lt;br /&gt;
* To see the ''cmake-command'' that corresponds to the configuration you have just set in cmake-gui: Tools/Show my changes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Available features ===&lt;br /&gt;
CMake looks for all required tool in the path specified in [[CMake#The_toolchain_file| toolchain.cmake file]] toolchain.cmake file; therefore, some options, targets, libraries, ... are not available:&lt;br /&gt;
&lt;br /&gt;
* Build:&lt;br /&gt;
** Latex Doc            : Not available in Buildroot&lt;br /&gt;
** New Python support   : Not available (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Swing Python support : Not available (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Octave support       : Not available in Buildroot&lt;br /&gt;
* Python&lt;br /&gt;
** Executable           : Not found (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Include dirs.        : Found&lt;br /&gt;
** Library              : Not found (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
* With&lt;br /&gt;
** V4L                  : Disable it (Buildroot provides it, but linker failed)&lt;br /&gt;
* OpenCV&lt;br /&gt;
** 3rd party libs.      : You can enable it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|You may need to enable some packages in your Armadeus configuration to get some libraries (libjpeg, libpng and libtiff) found by CMake.}}&lt;br /&gt;
&lt;br /&gt;
== Run OpenCV applications on your APF-board ==&lt;br /&gt;
# In the ''build'' directory, you should find a ''bin'' and a ''lib'' sub-directories. Copy them (at least the ''lib'' directory) on your target.&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=/path/to/the/OpenCVlibdir&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Run your application. You can try ''cvtest'' (some tests may fail because of missing resources),  it will take a while... a long while ;)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://opencv.willowgarage.com/wiki/InstallGuide OpenCV install guide]&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
=== OpenCV-2.1.0.patch ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/flann/constants.h.origin	2010-06-08 01:14:22.171416516 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/flann/constants.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -41,7 +41,7 @@ enum flann_algorithm_t {&lt;br /&gt;
 	KMEANS = 2,&lt;br /&gt;
 	COMPOSITE = 3,&lt;br /&gt;
 	SAVED = 254,&lt;br /&gt;
-	AUTOTUNED = 255,&lt;br /&gt;
+	AUTOTUNED = 255&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 enum flann_centers_init_t {&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/flann/flann.h.origin	2010-06-08 01:14:32.588443815 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/flann/flann.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -267,7 +267,7 @@ LIBSPEC int flann_compute_cluster_center&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #ifdef __cplusplus&lt;br /&gt;
-};&lt;br /&gt;
+}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;flann.hpp&amp;quot;&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/include/flann/constants.h.origin	2010-06-08 01:14:54.503416676 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/include/flann/constants.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -41,7 +41,7 @@ enum flann_algorithm_t {&lt;br /&gt;
 	KMEANS = 2,&lt;br /&gt;
 	COMPOSITE = 3,&lt;br /&gt;
 	SAVED = 254,&lt;br /&gt;
-	AUTOTUNED = 255,&lt;br /&gt;
+	AUTOTUNED = 255&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 enum flann_centers_init_t {&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/include/flann/flann.h.origin	2010-06-08 01:14:44.672417690 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/include/flann/flann.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -267,7 +267,7 @@ LIBSPEC int flann_compute_cluster_center&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #ifdef __cplusplus&lt;br /&gt;
-};&lt;br /&gt;
+}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;flann.hpp&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Software]]&lt;br /&gt;
[[Category: Video]]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OpenCV&amp;diff=10597</id>
		<title>OpenCV</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OpenCV&amp;diff=10597"/>
				<updated>2012-02-04T19:17:11Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Build OpenCV */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Under_Construction}}&lt;br /&gt;
== Forewords ==&lt;br /&gt;
This page explains how to (cross-)compile [http://opencv.willowgarage.com/wiki OpenCV 2.1.0] for your APF-board.&lt;br /&gt;
&lt;br /&gt;
== Pre-requisite ==&lt;br /&gt;
You need to have [[CMake]] &amp;gt;=2.6 installed on your system.&lt;br /&gt;
&lt;br /&gt;
== Build OpenCV ==&lt;br /&gt;
# Edit your [[CMake#The_toolchain_file| toolchain.cmake file]]&lt;br /&gt;
# Create source and build directories &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -pv opencv-on-armadeus/{src,build}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Grab the source archive &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd opencv-on-armadeus/src&lt;br /&gt;
wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.1/OpenCV-2.1.0.tar.bz2&lt;br /&gt;
tar xvvjf OpenCV-2.1.0.tar.bz2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Here, you'll have to apply [[#OpenCV-2.1.0.patch| this patch]] to avoid compilation failed: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
patch -p0 &amp;lt; OpenCV-2.1.0.patch&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Run CMake (generate Makefiles)&lt;br /&gt;
## &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/opencv-on-armadeus/build &amp;amp;&amp;amp; cmake -DCMAKE_TOOLCHAIN_FILE:PATH=/path/to/toolchain.cmake ../src/OpenCV-2.1.0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
##It will certainly complain about unfound libraries and some other things, so adjust these things running:&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cmake-gui&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Compile OpenCV libraries &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
VERBOSE=1 make&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|'''cmake-gui'''&lt;br /&gt;
&lt;br /&gt;
* Click twice on ''Configure'' when you change something.&lt;br /&gt;
* When configuring exit without any error, click on ''Generate'' to generate Makefiles.&lt;br /&gt;
* If your configuration is too messy, reset it by deleting the cache (File/Delete Cache) or remove the ''CMakeCache.txt'' file in the build directory. Don't hesitate to do so if something (eg. paths) is wrong ;)&lt;br /&gt;
* To see the ''cmake-command'' that corresponds to the configuration you have just set in cmake-gui: Tools/Show my changes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Available features ===&lt;br /&gt;
CMake looks for all required tool in the path specified in [[CMake#The_toolchain_file| toolchain.cmake file]] toolchain.cmake file; therefore, some options, targets, libraries, ... are not available:&lt;br /&gt;
&lt;br /&gt;
* Build:&lt;br /&gt;
** Latex Doc            : Not available in Buildroot&lt;br /&gt;
** New Python support   : Not available (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Swing Python support : Not available (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Octave support       : Not available in Buildroot&lt;br /&gt;
* Python&lt;br /&gt;
** Executable           : Not found (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
** Include dirs.        : Found&lt;br /&gt;
** Library              : Not found (require Python &amp;gt;=2.6, Buildroot provides Python 2.4)&lt;br /&gt;
* With&lt;br /&gt;
** V4L                  : Disable it (Buildroot provides it, but linker failed)&lt;br /&gt;
* OpenCV&lt;br /&gt;
** 3rd party libs.      : You can enable it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|You may need to enable some packages in your Armadeus configuration to get some libraries (libjpeg, libpng and libtiff) found by CMake.}}&lt;br /&gt;
&lt;br /&gt;
== Run OpenCV applications on your APF-board ==&lt;br /&gt;
# In the ''build'' directory, you should find a ''bin'' and a ''lib'' sub-directories. Copy them (at least the ''lib'' directory) on your target.&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export LD_LIBRARY_PATH=/path/to/the/OpenCVlibdir&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Run your application. You can try ''cvtest'' (some tests may fail because of missing resources),  it will take a while... a long while ;)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://opencv.willowgarage.com/wiki/InstallGuide OpenCV install guide]&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
=== OpenCV-2.1.0.patch ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/flann/constants.h.origin	2010-06-08 01:14:22.171416516 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/flann/constants.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -41,7 +41,7 @@ enum flann_algorithm_t {&lt;br /&gt;
 	KMEANS = 2,&lt;br /&gt;
 	COMPOSITE = 3,&lt;br /&gt;
 	SAVED = 254,&lt;br /&gt;
-	AUTOTUNED = 255,&lt;br /&gt;
+	AUTOTUNED = 255&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 enum flann_centers_init_t {&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/flann/flann.h.origin	2010-06-08 01:14:32.588443815 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/flann/flann.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -267,7 +267,7 @@ LIBSPEC int flann_compute_cluster_center&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #ifdef __cplusplus&lt;br /&gt;
-};&lt;br /&gt;
+}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;flann.hpp&amp;quot;&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/include/flann/constants.h.origin	2010-06-08 01:14:54.503416676 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/include/flann/constants.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -41,7 +41,7 @@ enum flann_algorithm_t {&lt;br /&gt;
 	KMEANS = 2,&lt;br /&gt;
 	COMPOSITE = 3,&lt;br /&gt;
 	SAVED = 254,&lt;br /&gt;
-	AUTOTUNED = 255,&lt;br /&gt;
+	AUTOTUNED = 255&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 enum flann_centers_init_t {&lt;br /&gt;
--- OpenCV-2.1.0/3rdparty/include/flann/flann.h.origin	2010-06-08 01:14:44.672417690 +0200&lt;br /&gt;
+++ OpenCV-2.1.0/3rdparty/include/flann/flann.h	2010-06-08 01:15:06.912417891 +0200&lt;br /&gt;
@@ -267,7 +267,7 @@ LIBSPEC int flann_compute_cluster_center&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #ifdef __cplusplus&lt;br /&gt;
-};&lt;br /&gt;
+}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;flann.hpp&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Software]]&lt;br /&gt;
[[Category: Video]]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=GPS&amp;diff=9998</id>
		<title>GPS</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=GPS&amp;diff=9998"/>
				<updated>2011-08-24T19:21:13Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize informations to connect GPS modules to your Armadeus board.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
GPS stands for Global Positioning System and is intended to allow one to knows its localization on Earth quite accuratly. See [http://en.wikipedia.org/wiki/Global_Positioning_System this Wikipedia article] for more informations. GPS receivers are generally driven through a low speed RS232 bus or USB.&lt;br /&gt;
&lt;br /&gt;
===RS232 modules===&lt;br /&gt;
The following RS232 receivers were successfully tested:&lt;br /&gt;
* the GPS receiver of the [[Wireless_extension_board|APF27 Wireless extension]] &amp;amp; [[APF51Dev]] boards (uBlox)&lt;br /&gt;
* the GPS receiver of the [http://projetaurore.assos.univ-fcomte.fr/ Projet Aurore association]. This autonomous receiver uses a standard NMEA GPS module that can be connected to the 3,3V RS232 port of your APF9328. All you need to do is to get the GND and TX signals out of this module and connect is to your GND and RX signals of your APF:&amp;lt;br&amp;gt;&lt;br /&gt;
{|border=0 summary=&amp;quot;APF pictures&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
| [[Image:GPS_Aurore_front.jpg|thumb|Recto]] || [[Image:GPS_Aurore_back.jpg|thumb|Verso]]&lt;br /&gt;
|----------------&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===USB modules===&lt;br /&gt;
These modules are mostly serial one with a RS232 &amp;lt;-&amp;gt; USB converter. None were tested yet.&lt;br /&gt;
&lt;br /&gt;
=== APF51Dev ===&lt;br /&gt;
===Configuration===&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;
      [*]   Board designs&lt;br /&gt;
      [*]     board drivers for twin uarts design&lt;br /&gt;
      &amp;lt;M&amp;gt;       board twin uarts&lt;br /&gt;
      &amp;lt;M&amp;gt;       board irq manager&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Usage===&lt;br /&gt;
* Don't forget to put &amp;quot;Wireless&amp;quot; jumper J42 on your [[APF51Dev]] (near microSD connector) AND power on FPGA Bank 3 (with corresponding jumper J39).&lt;br /&gt;
* On APF51Dev, optionnal GPS module (like GSM/3G) is accessed through a serial port synthetized in APF51's FPGA. So it has to be &amp;quot;loaded&amp;quot; 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;
* Configure serial port:&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 GPS_PORT=/dev/ttyS1&lt;br /&gt;
# stty -F $GPS_PORT raw -echo -echoe -echok 38400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== APF27 Wireless (APW)===&lt;br /&gt;
* Be sure to have correctly choosen the GPS option [[Wireless_extension_board#Linux_configuration|while configuring you Linux kernel for the APW]]. This will autoselect and activate corresponding serial port. Reflash your Linux kernel.&lt;br /&gt;
* Be sure that J3 jumper (near SIM card socket) is plugged in&lt;br /&gt;
* Configure GPS serial port (4 for Linux == UART5 for i.MX) of your APF27 (raw, no echo, 38400 bauds 8N1):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# stty -F /dev/ttySMX4 raw -echo -echoe -echok 38400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Test it: you'll get NMEA frames:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # cat /dev/ttySMX4&lt;br /&gt;
 $GPGSV,3,1,12,01,80,354,,02,32,070,38,04,13,037,09,09,14,146,*78&lt;br /&gt;
  &lt;br /&gt;
 $GPRMC,164916.00,V,,,,,,,130709,,,N*7C&lt;br /&gt;
 &lt;br /&gt;
 $GPGGA,164916.00,,,,,0,00,99.99,,,,,,*6B&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== APF9328 ===&lt;br /&gt;
* Configure Serial port 1 of your APF9328 (4800 bauds 8N1):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # stty -F /dev/ttySMX1 4800&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Power on your GPS module&lt;br /&gt;
* Test it: you'll get NMEA frames:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # cat /dev/ttySMX1&lt;br /&gt;
 $GPGGA,000026.032,,,,,0,00,,,M,0.0,M,,0000*53&lt;br /&gt;
 &lt;br /&gt;
 $GPGSA,A,1,,,,,,,,,,,,,,,*1E&lt;br /&gt;
 &lt;br /&gt;
 $GPRMC,000026.032,V,,,,,,,160406,,*2F&lt;br /&gt;
 &lt;br /&gt;
 $GPGGA,000027.032,,,,,0,00,,,M,0.0,M,,0000*52&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NMEA Frames signification==&lt;br /&gt;
* There is a small tool (under development) in ''target/demos/gps/'' that can help you to understand how to parse some NMEA frames in your application.&lt;br /&gt;
&lt;br /&gt;
* '''$GPGGA''': Global Positioning System Fix Data&lt;br /&gt;
* '''$GPGLL''': Geographic Position, Latitude/Longitude&lt;br /&gt;
* '''$GPGSA''': GPS DOP and Active Satellites&lt;br /&gt;
* '''$GPGSV''': GPS Satellites in View&lt;br /&gt;
* '''$GPRMB''': Recommended Minimum Navigation Information&lt;br /&gt;
* '''$GPRMC''': Recommended Minimum Specific GPS/TRANSIT Data&lt;br /&gt;
&lt;br /&gt;
==Troubleshots==&lt;br /&gt;
* In case your Aurore GPS module is detected and then automatically removed from the USB stack when you plug it on your PC, try to uninstall brltty:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo apt-get remove brltty&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Going further==&lt;br /&gt;
* If you don't want to manually parse NMEA frames in your app or want to support different GPS receivers type, you'll probably be interested by the [[GPS daemon]]&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* [http://www.ublox.com/en/gps-modules/pvt-modules/neo-5m.html Datasheet of the GPS module used on Armadeus Systems APW]&lt;br /&gt;
* [http://www.futuraelettronica.net/pdf_ita/8160-ET312.pdf Datasheet of the GPS module used by Projet Aurore]&lt;br /&gt;
* [http://jmfriedt.free.fr/notice_gps.pdf Documentation sur le module GPS du projet Aurore]&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* http://en.wikipedia.org/wiki/Global_Positioning_System&lt;br /&gt;
* [http://gpsd.berlios.de/gps-hacking.html How GPS is working, from gpsd (Linux daemon) creators]&lt;br /&gt;
* http://vancouver-webpages.com/peter/nmeafaq.txt&lt;br /&gt;
&lt;br /&gt;
[[Category:Navigation]]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=HMS_anybus_Linux&amp;diff=9924</id>
		<title>HMS anybus Linux</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=HMS_anybus_Linux&amp;diff=9924"/>
				<updated>2011-07-29T13:39:55Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* The Anybus module allows the Armadeus board to communicate on 18 differents industrial network such as Profibus, Modbus-TCP/RTU, CANOpen, ...&lt;br /&gt;
* The following instructions is relative to Armadeus boards APF51-Dev and APF51 with FPGA. Please ensure you use the trunk version of Armadeus.&lt;br /&gt;
&lt;br /&gt;
==Creation of the FPGA design with POD==&lt;br /&gt;
&lt;br /&gt;
[[Image:anybus_fpga.png|600px|frameless|border|Anybus interface design FPGA]]&lt;br /&gt;
&lt;br /&gt;
* A design is available in firmware/pod_scripts/apf51_anybus_interface.bin&lt;br /&gt;
* This design and the drivers can be generated by the POD script in your ARMadeus directory: firmware/pod_scripts/apf51_anybus_interface.pod (don't forget to edit the selectprojecttree command value).&lt;br /&gt;
&lt;br /&gt;
{{Warning| We have some trouble with IRQs and GPIOs, if you have to change GPIO or IRQ number, check the two command &amp;quot;setgeneric&amp;quot; in the script apf51_anybus_interface.pod .&lt;br /&gt;
* The GPIO reset number is the first number displayed when you do :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
  # modprobe pod_gpio&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The IRQ number can be obtained by add 1 to the last number when you do :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
  # modprobe pod_irq_ocore&lt;br /&gt;
&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
* Then, enable Drivers generated by POD and disable Drivers for wishbone example&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;
      [ ]   Drivers for wishbone example&lt;br /&gt;
      &amp;lt;M&amp;gt;   Drivers generated by POD&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 ; make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Reflash your linux kernel and rootfs&lt;br /&gt;
&lt;br /&gt;
==anybus_interface Linux driver installation==&lt;br /&gt;
===Kernel configuration===&lt;br /&gt;
&lt;br /&gt;
In your Armadeus directory, select the HMS Anybus linux driver anybus_interface:&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;   HMS Anybus driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Loading the modules driver===&lt;br /&gt;
&lt;br /&gt;
* Load the driver generated by POD.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # modprobe pod_anybus_interface_platform&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Load the kernel driver.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # modprobe anybus_interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Check if the interface anybus0 is available.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ifconfig anybus0&lt;br /&gt;
 anybus0   Link encap:UNSPEC  HWaddr 00-45-02-10-A0-0A-33-C7-00-00-00-00-00-00-00-00  &lt;br /&gt;
          NOARP  MTU:520  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:10 &lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
          Interrupt:83 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* HWaddr :&lt;br /&gt;
** The two first bytes : 00-45 is the fieldbus type ([http://www.hms.se/upload/Anybus-S-2401-ABS_M_Parallel_DG_2_08_SCM-1200-015.pdf Anybus-S Parallel Design Guide] p21). Here, it is an anybus Modbus RTU module.&lt;br /&gt;
** 02-10 is the Application Interface Software Version bytes ([http://www.hms.se/upload/Anybus-S-2401-ABS_M_Parallel_DG_2_08_SCM-1200-015.pdf Anybus-S Parallel Design Guide] p20)&lt;br /&gt;
** A0-0A-33-C7 is the Module Serial Number ([http://www.hms.se/upload/Anybus-S-2401-ABS_M_Parallel_DG_2_08_SCM-1200-015.pdf Anybus-S Parallel Design Guide] p20).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Mount the interface.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ifconfig anybus0 up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the surface mounted LED on the Anybus module (not the front LEDs). This LED should blink at 1Hz if the module is initialised, and 2Hz if not.&lt;br /&gt;
Then, you can use the interface.&lt;br /&gt;
&lt;br /&gt;
==anybus-tools==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
anybus-tools is a set of tools used to communicate with your HMS Anybus module through the anybus_interface Linux driver.&lt;br /&gt;
&lt;br /&gt;
===Installation on your target===&lt;br /&gt;
&lt;br /&gt;
* In your Armadeus directory on your host:&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;
* Choose anybus-tools&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;
  Armadeus specific tools/utilities  ---&amp;gt;&lt;br /&gt;
    [*] anybus-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reflash your rootfs.&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
&lt;br /&gt;
* In the APF environnement&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # anybus-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The first window ask you which anybus interface you want to use (anybus0 by default).&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
====Edit input area====&lt;br /&gt;
* Move in the HMS Anybus input area memory with arrow keys and edit a field hitting the &amp;lt; Enter &amp;gt; key.&lt;br /&gt;
[[Image:Capture_anybus_tools_edit_input.png|400px|frameless|border|Edit input area memory]]&lt;br /&gt;
====Map output area====&lt;br /&gt;
* Move in the HMS Anybus output area memory with arrow keys to watch messages received by the module.&lt;br /&gt;
====Mailbox message====&lt;br /&gt;
* Send and receive mailbox messages.&lt;br /&gt;
[[Image:Capture_anybus_tools_mailbox.png‎|400px|frameless|border|Mailbox interface]]&lt;br /&gt;
====Read register====&lt;br /&gt;
* Read a specific register in the HMS Anybus module memory.&lt;br /&gt;
====Change interface====&lt;br /&gt;
* Choose a different anybus interface.&lt;br /&gt;
====About...====&lt;br /&gt;
* Show &amp;quot;About...&amp;quot; dialog. &lt;br /&gt;
====Help====&lt;br /&gt;
* Display some help ...&lt;br /&gt;
&lt;br /&gt;
==Programmation==&lt;br /&gt;
The anybus_interface driver is accessible by a short C program (as a classic network interface). However, some informations and options need to be set.&lt;br /&gt;
Please include net/anybus_interface.h&lt;br /&gt;
&lt;br /&gt;
===Initialization===&lt;br /&gt;
* Declare some structures and variable&lt;br /&gt;
** Structure ifreq will be used to do network interface request&lt;br /&gt;
** Structure sockaddr_ll is a socket descriptor.&lt;br /&gt;
** int sk is the socket id.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct ifreq ifr;&lt;br /&gt;
struct sockaddr_ll addr;&lt;br /&gt;
int sock = 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Initialize some fields&lt;br /&gt;
** The anybus_interface driver use AF_PACKET family with the non-connected protocole.&lt;br /&gt;
** Put the interface name in the ifreq structure.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
addr.sll_family = AF_PACKET;&lt;br /&gt;
addr.sll_protocol = IPPROTO_UDP;&lt;br /&gt;
addr.sll_pkttype = PACKET_BROADCAST;&lt;br /&gt;
&lt;br /&gt;
strncpy(ifr.ifr_name, &amp;quot;anybus0&amp;quot;, strlen(&amp;quot;anybus0&amp;quot;));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create the socket&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
if ((sock = socket(PF_PACKET , SOCK_RAW, AF_PACKET)) &amp;lt; 0 ) {&lt;br /&gt;
    perror(&amp;quot;socket&amp;quot;);&lt;br /&gt;
    return sock;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* And associate it with the anybus network interface&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
ioctl(sock, SIOCGIFINDEX, &amp;amp;ifr);&lt;br /&gt;
addr.sll_ifindex = ifr.ifr_ifindex;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Bind the descriptor to the socket&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
if(bind(sock, (struct sockaddr *)&amp;amp;addr, sizeof(addr)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;bind&amp;quot;);&lt;br /&gt;
    return EXIT_FAILURE;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Communication (send/recv)===&lt;br /&gt;
&lt;br /&gt;
* First, you have to declare an anybus_frame structure&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct anybus_frame frame;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* This structure contain 3 fields :&lt;br /&gt;
** .reg : offset register of the anybus input/output memory.&lt;br /&gt;
** .len : Length of the data in this frame. The max len is given by ANYBUS_DATA_LEN.&lt;br /&gt;
** .data[n] : value at the address offset + n.&lt;br /&gt;
&lt;br /&gt;
* Initialize and send the frame on the fieldbus&lt;br /&gt;
** The following code will write the 16bits words 0x1234 and 0x9876 in the HMS Anybus input memory at the address 0x12 and 0x14 (16bits access)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
frame.reg = 0x12;&lt;br /&gt;
frame.len = 2;&lt;br /&gt;
frame.data[0] = 0x1234;&lt;br /&gt;
frame.data[1] = 0x9876;&lt;br /&gt;
&lt;br /&gt;
if ((ret = send(sock, (void *)&amp;amp;frame, sizeof(frame), 0)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;send&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Receive a frame on the fieldbus&lt;br /&gt;
** The following code will receive the values read in the HMS Anybus Output memory. The frame.reg will be always 0 and .len will be always 256.&lt;br /&gt;
** The recv() function is blocking until the HMS Anybus Output memory is changed.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
if((ret = recv(sock, (void *)&amp;amp;frame, sizeof(frame), 0)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;recv&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ioctl===&lt;br /&gt;
&lt;br /&gt;
* Anybus ioctls are independent of the socket id. The driver implement a char device /dev/anybusX_device.&lt;br /&gt;
* Five ioctls commands are available.&lt;br /&gt;
* The structure given to the ioctl commands is: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct mailbox_msg {&lt;br /&gt;
	unsigned short id;&lt;br /&gt;
	unsigned short msg_information;&lt;br /&gt;
	unsigned short command_number;&lt;br /&gt;
	unsigned short data_size;&lt;br /&gt;
	unsigned short extended_word[8];&lt;br /&gt;
	unsigned short data[ANYBUS_DATA_LEN];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct anybus_register {&lt;br /&gt;
	unsigned short address;&lt;br /&gt;
	unsigned short value;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mailbox read====&lt;br /&gt;
* Initialize a mailbox_msg structure and a file id.&lt;br /&gt;
* Open the device's file.&lt;br /&gt;
* Do the ioctl command ANYBUS_MB_READ.&lt;br /&gt;
* close the device file.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct mailbox_msg received_mail;&lt;br /&gt;
int fd_device;&lt;br /&gt;
&lt;br /&gt;
fd_device = open(&amp;quot;/dev/anybus0_interface&amp;quot;, O_RDONLY);&lt;br /&gt;
&lt;br /&gt;
if((ret = ioctl(fd_device, ANYBUS_MB_READ, &amp;amp;received_mail)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;ioctl&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The fields of the received_mail structure contains now the informations about &lt;br /&gt;
the last mailbox message emitted by the HMS Anybus module. */&lt;br /&gt;
&lt;br /&gt;
close(fd_device);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| It is possible to do a [http://www.gnu.org/s/hello/manual/libc/Waiting-for-I_002fO.html select()] command on the device file /dev/anybusX_device.}}&lt;br /&gt;
&lt;br /&gt;
====Mailbox write====&lt;br /&gt;
* Initialize a mailbox_msg structure.&lt;br /&gt;
* Open the anybus device file.&lt;br /&gt;
* Fill the mail_to_send structure fields.&lt;br /&gt;
* Do the ioctl command ANYBUS_MB_READ.&lt;br /&gt;
* close the device file.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct mailbox_msg mail_to_send;&lt;br /&gt;
int fd_device;&lt;br /&gt;
&lt;br /&gt;
fd_device = open(&amp;quot;/dev/anybus0_interface&amp;quot;, O_RDONLY);&lt;br /&gt;
&lt;br /&gt;
/* Fill the mail_to_send structure fields here */&lt;br /&gt;
&lt;br /&gt;
if((ret = ioctl(fd_device, ANYBUS_MB_WRITE, &amp;amp;mail_to_send)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;ioctl&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
close(fd_device);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Map input area====&lt;br /&gt;
* Declare a structure anybus_frame.&lt;br /&gt;
* Open the device file.&lt;br /&gt;
* Do the ioctl command ANYBUS_MAP_INPUT.&lt;br /&gt;
* Close the device file.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct anybus_frame frame;&lt;br /&gt;
int fd_device;&lt;br /&gt;
&lt;br /&gt;
fd_device = open(&amp;quot;/dev/anybus0_interface&amp;quot;, O_RDONLY);&lt;br /&gt;
&lt;br /&gt;
if ((ret = ioctl(fd_device, ANYBUS_MAP_INPUT, frame.data)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;ioctl&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The frame.data field has been filled */&lt;br /&gt;
&lt;br /&gt;
close(fd_device);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Map output area====&lt;br /&gt;
* Declare a structure anybus_frame.&lt;br /&gt;
* Open the device file.&lt;br /&gt;
* Do the ioctl command ANYBUS_MAP_OUTPUT.&lt;br /&gt;
* Close the device file.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct anybus_frame frame;&lt;br /&gt;
int fd_device;&lt;br /&gt;
&lt;br /&gt;
fd_device = open(&amp;quot;/dev/anybus0_interface&amp;quot;, O_RDONLY);&lt;br /&gt;
&lt;br /&gt;
if ((ret = ioctl(fd_device, ANYBUS_MAP_OUTPUT, frame.data)) &amp;lt; 0)&lt;br /&gt;
    return ret;&lt;br /&gt;
&lt;br /&gt;
/* The frame.data field has been filled */&lt;br /&gt;
&lt;br /&gt;
close(fd_device);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Read anybus register====&lt;br /&gt;
* Declare a structure anybus_frame.&lt;br /&gt;
* Open the device file.&lt;br /&gt;
* Give the address register (here 0x7D5)&lt;br /&gt;
* Do the ioctl command ANYBUS_MAP_OUTPUT.&lt;br /&gt;
* Close the device file.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct anybus_register anybus_reg&lt;br /&gt;
int fd_device;&lt;br /&gt;
&lt;br /&gt;
fd_device = open(&amp;quot;/dev/anybus0_interface&amp;quot;, O_RDONLY);&lt;br /&gt;
&lt;br /&gt;
anybus_reg.address = 0x7D5;&lt;br /&gt;
&lt;br /&gt;
if ((ret = ioctl(fd_device, ANYBUS_READ_REG, &amp;amp;anybus_reg)) &amp;lt; 0) {&lt;br /&gt;
                return ret;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
/* The anybus_reg.value field has been filled */&lt;br /&gt;
&lt;br /&gt;
close(fd_device);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===closing the socket===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
close(sock);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
* Have a look to the source code anybus_tools in your armadeus directory, target/package/anybus_tools/&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://www.hms.se/ HMS Website]&lt;br /&gt;
* [http://www.hms.se/upload/Anybus-S-2401-ABS_M_Parallel_DG_2_08_SCM-1200-015.pdf HMS Anybus General Design Guide]&lt;br /&gt;
* [http://libmodbus.org/ libmodbus: Multi-plateform modbus library] (Used for test)&lt;br /&gt;
* [http://www.linuxhowtos.org/C_C++/socket.htm A socket tutorial]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=HMS_anybus_Linux&amp;diff=9907</id>
		<title>HMS anybus Linux</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=HMS_anybus_Linux&amp;diff=9907"/>
				<updated>2011-07-28T16:14:19Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Under_Construction}}&lt;br /&gt;
&lt;br /&gt;
* The Anybus module allows the Armadeus board to communicate on 18 differents industrial network such as Profibus, Modbus-TCP/RTU, CANOpen, ...&lt;br /&gt;
* The following instructions is relative to Armadeus boards APF51-Dev and APF51 with FPGA. Please ensure you use the trunk version of Armadeus.&lt;br /&gt;
&lt;br /&gt;
==Creation of the FPGA design with POD==&lt;br /&gt;
&lt;br /&gt;
[[Image:anybus_fpga.png|600px|frameless|border|Anybus interface design FPGA]]&lt;br /&gt;
&lt;br /&gt;
* A design is available in firmware/pod_scripts/apf51_anybus_interface.bin&lt;br /&gt;
* This design and the drivers can be generated by the POD script in your ARMadeus directory: firmware/pod_scripts/apf51_anybus_interface.pod (don't forget to edit the selectprojecttree command value).&lt;br /&gt;
&lt;br /&gt;
{{Warning| We have some trouble with IRQs and GPIOs, if you have to change GPIO or IRQ number, check the two command &amp;quot;setgeneric&amp;quot; in the script apf51_anybus_interface.pod .&lt;br /&gt;
* The GPIO reset number is the first number displayed when you do :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
  # modprobe pod_gpio&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The IRQ number can be obtained by add 1 to the last number when you do :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
  # modprobe pod_irq_ocore&lt;br /&gt;
&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
* Then, enable Drivers generated by POD and disable Drivers for wishbone example&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;
      [ ]   Drivers for wishbone example&lt;br /&gt;
      &amp;lt;M&amp;gt;   Drivers generated by POD&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 ; make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Reflash your linux kernel and rootfs&lt;br /&gt;
&lt;br /&gt;
==anybus_interface Linux driver installation==&lt;br /&gt;
===Kernel configuration===&lt;br /&gt;
&lt;br /&gt;
In your Armadeus directory, select the HMS Anybus linux driver anybus_interface:&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;   HMS Anybus driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Loading the modules driver===&lt;br /&gt;
&lt;br /&gt;
* Load the driver generated by POD.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # modprobe pod_anybus_interface_platform&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Load the kernel driver.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # modprobe anybus_interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Check if the interface anybus0 is available.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ifconfig anybus0&lt;br /&gt;
 anybus0   Link encap:UNSPEC  HWaddr 00-45-02-10-A0-0A-33-C7-00-00-00-00-00-00-00-00  &lt;br /&gt;
          NOARP  MTU:520  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:10 &lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
          Interrupt:83 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* HWaddr :&lt;br /&gt;
** The two first bytes : 00-45 is the fieldbus type ([http://www.hms.se/upload/Anybus-S-2401-ABS_M_Parallel_DG_2_08_SCM-1200-015.pdf Anybus-S Parallel Design Guide] p21). Here, it is an anybus Modbus RTU module.&lt;br /&gt;
** 02-10 is the Application Interface Software Version bytes ([http://www.hms.se/upload/Anybus-S-2401-ABS_M_Parallel_DG_2_08_SCM-1200-015.pdf Anybus-S Parallel Design Guide] p20)&lt;br /&gt;
** A0-0A-33-C7 is the Module Serial Number ([http://www.hms.se/upload/Anybus-S-2401-ABS_M_Parallel_DG_2_08_SCM-1200-015.pdf Anybus-S Parallel Design Guide] p20).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Mount the interface.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ifconfig anybus0 up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the surface mounted LED on the Anybus module (not the front LEDs). This LED should blink at 1Hz if the module is initialised, and 2Hz if not.&lt;br /&gt;
Then, you can use the interface.&lt;br /&gt;
&lt;br /&gt;
==anybus-tools==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
anybus-tools is a set of tools used to communicate with your HMS Anybus module through the anybus_interface Linux driver.&lt;br /&gt;
&lt;br /&gt;
===Installation on your target===&lt;br /&gt;
&lt;br /&gt;
* In your Armadeus directory on your host:&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;
* Choose anybus-tools&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;
  Armadeus specific tools/utilities  ---&amp;gt;&lt;br /&gt;
    [*] anybus-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reflash your rootfs.&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
&lt;br /&gt;
* In the APF environnement&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # anybus-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The first window ask you which anybus interface you want to use (anybus0 by default).&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
====Edit input area====&lt;br /&gt;
* Move in the HMS Anybus input area memory with arrow keys and edit a field hitting the &amp;lt; Enter &amp;gt; key.&lt;br /&gt;
[[Image:Capture_anybus_tools_edit_input.png|400px|frameless|border|Edit input area memory]]&lt;br /&gt;
====Map output area====&lt;br /&gt;
* Move in the HMS Anybus output area memory with arrow keys to watch messages received by the module.&lt;br /&gt;
====Mailbox message====&lt;br /&gt;
* Send and receive mailbox messages.&lt;br /&gt;
[[Image:Capture_anybus_tools_mailbox.png‎|400px|frameless|border|Mailbox interface]]&lt;br /&gt;
====Read register====&lt;br /&gt;
* Read a specific register in the HMS Anybus module memory.&lt;br /&gt;
====Change interface====&lt;br /&gt;
* Choose a different anybus interface.&lt;br /&gt;
====About...====&lt;br /&gt;
* Show &amp;quot;About...&amp;quot; dialog. &lt;br /&gt;
====Help====&lt;br /&gt;
* Display some help ...&lt;br /&gt;
&lt;br /&gt;
==Programmation==&lt;br /&gt;
The anybus_interface driver is accessible by a short C program (as a classic network interface). However, some informations and options need to be set.&lt;br /&gt;
Please include net/anybus_interface.h&lt;br /&gt;
&lt;br /&gt;
===Initialization===&lt;br /&gt;
* Declare some structures and variable&lt;br /&gt;
** Structure ifreq will be used to do network interface request&lt;br /&gt;
** Structure sockaddr_ll is a socket descriptor.&lt;br /&gt;
** int sk is the socket id.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct ifreq ifr;&lt;br /&gt;
struct sockaddr_ll addr;&lt;br /&gt;
int sock = 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Initialize some fields&lt;br /&gt;
** The anybus_interface driver use AF_PACKET family with the non-connected protocole.&lt;br /&gt;
** Put the interface name in the ifreq structure.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
addr.sll_family = AF_PACKET;&lt;br /&gt;
addr.sll_protocol = IPPROTO_UDP;&lt;br /&gt;
addr.sll_pkttype = PACKET_BROADCAST;&lt;br /&gt;
&lt;br /&gt;
strncpy(ifr.ifr_name, &amp;quot;anybus0&amp;quot;, strlen(&amp;quot;anybus0&amp;quot;));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create the socket&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
if ((sock = socket(PF_PACKET , SOCK_RAW, AF_PACKET)) &amp;lt; 0 ) {&lt;br /&gt;
    perror(&amp;quot;socket&amp;quot;);&lt;br /&gt;
    return sock;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* And associate it with the anybus network interface&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
ioctl(sock, SIOCGIFINDEX, &amp;amp;ifr);&lt;br /&gt;
addr.sll_ifindex = ifr.ifr_ifindex;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Bind the descriptor to the socket&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
if(bind(sock, (struct sockaddr *)&amp;amp;addr, sizeof(addr)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;bind&amp;quot;);&lt;br /&gt;
    return EXIT_FAILURE;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Communication (send/recv)===&lt;br /&gt;
&lt;br /&gt;
* First, you have to declare an anybus_frame structure&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct anybus_frame frame;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* This structure contain 3 fields :&lt;br /&gt;
** .reg : offset register of the anybus input/output memory.&lt;br /&gt;
** .len : Length of the data in this frame. The max len is given by ANYBUS_DATA_LEN.&lt;br /&gt;
** .data[n] : value at the address offset + n.&lt;br /&gt;
&lt;br /&gt;
* Initialize and send the frame on the fieldbus&lt;br /&gt;
** The following code will write the 16bits words 0x1234 and 0x9876 in the HMS Anybus input memory at the address 0x12 and 0x14 (16bits access)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
frame.reg = 0x12;&lt;br /&gt;
frame.len = 2;&lt;br /&gt;
frame.data[0] = 0x1234;&lt;br /&gt;
frame.data[1] = 0x9876;&lt;br /&gt;
&lt;br /&gt;
if ((ret = send(sock, (void *)&amp;amp;frame, sizeof(frame), 0)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;send&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Receive a frame on the fieldbus&lt;br /&gt;
** The following code will receive the values read in the HMS Anybus Output memory. The frame.reg will be always 0 and .len will be always 256.&lt;br /&gt;
** The recv() function is blocking until the HMS Anybus Output memory is changed.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
if((ret = recv(sock, (void *)&amp;amp;frame, sizeof(frame), 0)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;recv&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ioctl===&lt;br /&gt;
&lt;br /&gt;
* Anybus ioctls are independent of the socket id. The driver implement a char device /dev/anybusX_device.&lt;br /&gt;
* Five ioctls commands are available.&lt;br /&gt;
* The structure given to the ioctl commands is: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct mailbox_msg {&lt;br /&gt;
	unsigned short id;&lt;br /&gt;
	unsigned short msg_information;&lt;br /&gt;
	unsigned short command_number;&lt;br /&gt;
	unsigned short data_size;&lt;br /&gt;
	unsigned short extended_word[8];&lt;br /&gt;
	unsigned short data[ANYBUS_DATA_LEN];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct anybus_register {&lt;br /&gt;
	unsigned short address;&lt;br /&gt;
	unsigned short value;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mailbox read====&lt;br /&gt;
* Initialize a mailbox_msg structure and a file id.&lt;br /&gt;
* Open the device's file.&lt;br /&gt;
* Do the ioctl command ANYBUS_MB_READ.&lt;br /&gt;
* close the device file.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct mailbox_msg received_mail;&lt;br /&gt;
int fd_device;&lt;br /&gt;
&lt;br /&gt;
fd_device = open(&amp;quot;/dev/anybus0_interface&amp;quot;, O_RDONLY);&lt;br /&gt;
&lt;br /&gt;
if((ret = ioctl(fd_device, ANYBUS_MB_READ, &amp;amp;received_mail)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;ioctl&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The fields of the received_mail structure contains now the informations about &lt;br /&gt;
the last mailbox message emitted by the HMS Anybus module. */&lt;br /&gt;
&lt;br /&gt;
close(fd_device);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| It is possible to do a [http://www.gnu.org/s/hello/manual/libc/Waiting-for-I_002fO.html select()] command on the device file /dev/anybusX_device.}}&lt;br /&gt;
&lt;br /&gt;
====Mailbox write====&lt;br /&gt;
* Initialize a mailbox_msg structure.&lt;br /&gt;
* Open the anybus device file.&lt;br /&gt;
* Fill the mail_to_send structure fields.&lt;br /&gt;
* Do the ioctl command ANYBUS_MB_READ.&lt;br /&gt;
* close the device file.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct mailbox_msg mail_to_send;&lt;br /&gt;
int fd_device;&lt;br /&gt;
&lt;br /&gt;
fd_device = open(&amp;quot;/dev/anybus0_interface&amp;quot;, O_RDONLY);&lt;br /&gt;
&lt;br /&gt;
/* Fill the mail_to_send structure fields here */&lt;br /&gt;
&lt;br /&gt;
if((ret = ioctl(fd_device, ANYBUS_MB_WRITE, &amp;amp;mail_to_send)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;ioctl&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
close(fd_device);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Map input area====&lt;br /&gt;
* Declare a structure anybus_frame.&lt;br /&gt;
* Open the device file.&lt;br /&gt;
* Do the ioctl command ANYBUS_MAP_INPUT.&lt;br /&gt;
* Close the device file.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct anybus_frame frame;&lt;br /&gt;
int fd_device;&lt;br /&gt;
&lt;br /&gt;
fd_device = open(&amp;quot;/dev/anybus0_interface&amp;quot;, O_RDONLY);&lt;br /&gt;
&lt;br /&gt;
if ((ret = ioctl(fd_device, ANYBUS_MAP_INPUT, frame.data)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;ioctl&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The frame.data field has been filled */&lt;br /&gt;
&lt;br /&gt;
close(fd_device);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Map output area====&lt;br /&gt;
* Declare a structure anybus_frame.&lt;br /&gt;
* Open the device file.&lt;br /&gt;
* Do the ioctl command ANYBUS_MAP_OUTPUT.&lt;br /&gt;
* Close the device file.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct anybus_frame frame;&lt;br /&gt;
int fd_device;&lt;br /&gt;
&lt;br /&gt;
fd_device = open(&amp;quot;/dev/anybus0_interface&amp;quot;, O_RDONLY);&lt;br /&gt;
&lt;br /&gt;
if ((ret = ioctl(fd_device, ANYBUS_MAP_OUTPUT, frame.data)) &amp;lt; 0)&lt;br /&gt;
    return ret;&lt;br /&gt;
&lt;br /&gt;
/* The frame.data field has been filled */&lt;br /&gt;
&lt;br /&gt;
close(fd_device);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Read anybus register====&lt;br /&gt;
* Declare a structure anybus_frame.&lt;br /&gt;
* Open the device file.&lt;br /&gt;
* Give the address register (here 0x7D5)&lt;br /&gt;
* Do the ioctl command ANYBUS_MAP_OUTPUT.&lt;br /&gt;
* Close the device file.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct anybus_register anybus_reg&lt;br /&gt;
int fd_device;&lt;br /&gt;
&lt;br /&gt;
fd_device = open(&amp;quot;/dev/anybus0_interface&amp;quot;, O_RDONLY);&lt;br /&gt;
&lt;br /&gt;
anybus_reg.address = 0x7D5;&lt;br /&gt;
&lt;br /&gt;
if ((ret = ioctl(fd_device, ANYBUS_READ_REG, &amp;amp;anybus_reg)) &amp;lt; 0) {&lt;br /&gt;
                return ret;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
/* The anybus_reg.value field has been filled */&lt;br /&gt;
&lt;br /&gt;
close(fd_device);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===closing the socket===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
close(sock);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
* Have a look to the source code anybus_tools in your armadeus directory, target/package/anybus_tools/&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://www.hms.se/ HMS Website]&lt;br /&gt;
* [http://www.hms.se/upload/Anybus-S-2401-ABS_M_Parallel_DG_2_08_SCM-1200-015.pdf HMS Anybus General Design Guide]&lt;br /&gt;
* [http://libmodbus.org/ libmodbus: Multi-plateform modbus library] (Used for test)&lt;br /&gt;
* [http://www.linuxhowtos.org/C_C++/socket.htm A socket tutorial]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=File:Anybus_fpga.png&amp;diff=9905</id>
		<title>File:Anybus fpga.png</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=File:Anybus_fpga.png&amp;diff=9905"/>
				<updated>2011-07-28T15:32:38Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: internal schematic of the anybus design&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;internal schematic of the anybus design&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=HMS_anybus_Linux&amp;diff=9902</id>
		<title>HMS anybus Linux</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=HMS_anybus_Linux&amp;diff=9902"/>
				<updated>2011-07-27T16:45:40Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{Under_Construction}}&lt;br /&gt;
&lt;br /&gt;
* The Anybus module allows the Armadeus board to communicate on 18 differents industrial network such as Profibus, Modbus-TCP/RTU, CANOpen, ...&lt;br /&gt;
* The following instructions is relative to Armadeus boards APF51-Dev and APF51 with FPGA. Please ensure you use the trunk version of Armadeus.&lt;br /&gt;
&lt;br /&gt;
==Creation of the FPGA design with POD==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
==anybus_interface Linux driver installation==&lt;br /&gt;
===Kernel configuration===&lt;br /&gt;
&lt;br /&gt;
In your Armadeus directory, select the HMS Anybus linux driver anybus_interface:&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;   HMS Anybus driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Loading the modules driver===&lt;br /&gt;
&lt;br /&gt;
* Load the driver generated by POD.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # modprobe pod_anybus_interface_platform&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Load the kernel driver.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # modprobe anybus_interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Check if the interface anybus0 is available.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ifconfig anybus0&lt;br /&gt;
 anybus0   Link encap:UNSPEC  HWaddr 00-45-02-10-A0-0A-33-C7-00-00-00-00-00-00-00-00  &lt;br /&gt;
          NOARP  MTU:520  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:10 &lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
          Interrupt:83 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* HWaddr :&lt;br /&gt;
** The two first bytes : 00-45 is the fieldbus type ([http://www.hms.se/upload/Anybus-S-2401-ABS_M_Parallel_DG_2_08_SCM-1200-015.pdf Anybus-S Parallel Design Guide] p21). Here, it is an anybus Modbus RTU module.&lt;br /&gt;
** 02-10 is the Application Interface Software Version bytes ([http://www.hms.se/upload/Anybus-S-2401-ABS_M_Parallel_DG_2_08_SCM-1200-015.pdf Anybus-S Parallel Design Guide] p20)&lt;br /&gt;
** A0-0A-33-C7 is the Module Serial Number ([http://www.hms.se/upload/Anybus-S-2401-ABS_M_Parallel_DG_2_08_SCM-1200-015.pdf Anybus-S Parallel Design Guide] p20).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Mount the interface.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ifconfig anybus0 up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the surface mounted LED on the Anybus module (not the front LEDs). This LED should blink at 1Hz if the module is initialised, and 2Hz if not.&lt;br /&gt;
Then, you can use the interface.&lt;br /&gt;
&lt;br /&gt;
==anybus-tools==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
anybus-tools is a set of tools used to communicate with your HMS Anybus module through the anybus_interface Linux driver.&lt;br /&gt;
&lt;br /&gt;
===Installation on your target===&lt;br /&gt;
&lt;br /&gt;
* In your Armadeus directory on your host:&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;
* Choose anybus-tools&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;
  Armadeus specific tools/utilities  ---&amp;gt;&lt;br /&gt;
    [*] anybus-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reflash your rootfs.&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
&lt;br /&gt;
* In the APF environnement&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # anybus-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The first window ask you which anybus interface you want to use (anybus0 by default).&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
====Edit input area====&lt;br /&gt;
* Move in the HMS Anybus input area memory with arrow keys and edit a field hitting the &amp;lt; Enter &amp;gt; key.&lt;br /&gt;
[[Image:Capture_anybus_tools_edit_input.png|400px|frameless|border|Edit input area memory]]&lt;br /&gt;
====Map output area====&lt;br /&gt;
* Move in the HMS Anybus output area memory with arrow keys to watch messages received by the module.&lt;br /&gt;
====Mailbox message====&lt;br /&gt;
* Send and receive mailbox messages.&lt;br /&gt;
[[Image:Capture_anybus_tools_mailbox.png‎|400px|frameless|border|Mailbox interface]]&lt;br /&gt;
====Read register====&lt;br /&gt;
* Read a specific register in the HMS Anybus module memory.&lt;br /&gt;
====Change interface====&lt;br /&gt;
* Choose a different anybus interface.&lt;br /&gt;
====About...====&lt;br /&gt;
* Show &amp;quot;About...&amp;quot; dialog. &lt;br /&gt;
====Help====&lt;br /&gt;
* Display some help ...&lt;br /&gt;
&lt;br /&gt;
==Programmation==&lt;br /&gt;
The anybus_interface driver is accessible by a short C program (as a classic network interface). However, some informations and options need to be set.&lt;br /&gt;
Please include net/anybus_interface.h&lt;br /&gt;
&lt;br /&gt;
===Initialization===&lt;br /&gt;
* Declare some structures and variable&lt;br /&gt;
** Structure ifreq will be used to do network interface request&lt;br /&gt;
** Structure sockaddr_ll is a socket descriptor.&lt;br /&gt;
** int sk is the socket id.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct ifreq ifr;&lt;br /&gt;
struct sockaddr_ll addr;&lt;br /&gt;
int sock = 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Initialize some fields&lt;br /&gt;
** The anybus_interface driver use AF_PACKET family with the non-connected protocole.&lt;br /&gt;
** Put the interface name in the ifreq structure.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
addr.sll_family = AF_PACKET;&lt;br /&gt;
addr.sll_protocol = IPPROTO_UDP;&lt;br /&gt;
addr.sll_pkttype = PACKET_BROADCAST;&lt;br /&gt;
&lt;br /&gt;
strncpy(ifr.ifr_name, &amp;quot;anybus0&amp;quot;, strlen(&amp;quot;anybus0&amp;quot;));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create the socket&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
if ((sock = socket(PF_PACKET , SOCK_RAW, AF_PACKET)) &amp;lt; 0 ) {&lt;br /&gt;
    perror(&amp;quot;socket&amp;quot;);&lt;br /&gt;
    return sock;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* And associate it with the anybus network interface&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
ioctl(sock, SIOCGIFINDEX, &amp;amp;ifr);&lt;br /&gt;
addr.sll_ifindex = ifr.ifr_ifindex;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Bind the descriptor to the socket&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
if(bind(sock, (struct sockaddr *)&amp;amp;addr, sizeof(addr)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;bind&amp;quot;);&lt;br /&gt;
    return EXIT_FAILURE;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Communication (send/recv)===&lt;br /&gt;
&lt;br /&gt;
* First, you have to declare an anybus_frame structure&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct anybus_frame frame;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* This structure contain 3 fields :&lt;br /&gt;
** .reg : offset register of the anybus input/output memory.&lt;br /&gt;
** .len : Length of the data in this frame. The max len is given by ANYBUS_DATA_LEN.&lt;br /&gt;
** .data[n] : value at the address offset + n.&lt;br /&gt;
&lt;br /&gt;
* Initialize and send the frame on the fieldbus&lt;br /&gt;
** The following code will write the 16bits words 0x1234 and 0x9876 in the HMS Anybus input memory at the address 0x12 and 0x14 (16bits access)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
frame.reg = 0x12;&lt;br /&gt;
frame.len = 2;&lt;br /&gt;
frame.data[0] = 0x1234;&lt;br /&gt;
frame.data[1] = 0x9876;&lt;br /&gt;
&lt;br /&gt;
if ((ret = send(sock, (void *)&amp;amp;frame, sizeof(frame), 0)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;send&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Receive a frame on the fieldbus&lt;br /&gt;
** The following code will receive the values read in the HMS Anybus Output memory. The frame.reg will be always 0 and .len will be always 256.&lt;br /&gt;
** The recv() function is blocking until the HMS Anybus Output memory is changed.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
if((ret = recv(sock, (void *)&amp;amp;frame, sizeof(frame), 0)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;recv&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ioctl===&lt;br /&gt;
&lt;br /&gt;
* Anybus ioctls are independent of the socket id. The driver implement a char device /dev/anybusX_device.&lt;br /&gt;
* Five ioctls commands are available.&lt;br /&gt;
* The structure given to the ioctl commands is: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct mailbox_msg {&lt;br /&gt;
	unsigned short id;&lt;br /&gt;
	unsigned short msg_information;&lt;br /&gt;
	unsigned short command_number;&lt;br /&gt;
	unsigned short data_size;&lt;br /&gt;
	unsigned short extended_word[8];&lt;br /&gt;
	unsigned short data[ANYBUS_DATA_LEN];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct anybus_register {&lt;br /&gt;
	unsigned short address;&lt;br /&gt;
	unsigned short value;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mailbox read====&lt;br /&gt;
* Initialize a mailbox_msg structure and a file id.&lt;br /&gt;
* Open the device's file.&lt;br /&gt;
* Do the ioctl command ANYBUS_MB_READ.&lt;br /&gt;
* close the device file.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct mailbox_msg received_mail;&lt;br /&gt;
int fd_device;&lt;br /&gt;
&lt;br /&gt;
fd_device = open(&amp;quot;/dev/anybus0_interface&amp;quot;, O_RDONLY);&lt;br /&gt;
&lt;br /&gt;
if((ret = ioctl(fd_device, ANYBUS_MB_READ, &amp;amp;received_mail)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;ioctl&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The fields of the received_mail structure contains now the informations about &lt;br /&gt;
the last mailbox message emitted by the HMS Anybus module. */&lt;br /&gt;
&lt;br /&gt;
close(fd_device);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| It is possible to do a [http://www.gnu.org/s/hello/manual/libc/Waiting-for-I_002fO.html select()] command on the device file /dev/anybusX_device.}}&lt;br /&gt;
&lt;br /&gt;
====Mailbox write====&lt;br /&gt;
* Initialize a mailbox_msg structure.&lt;br /&gt;
* Open the anybus device file.&lt;br /&gt;
* Fill the mail_to_send structure fields.&lt;br /&gt;
* Do the ioctl command ANYBUS_MB_READ.&lt;br /&gt;
* close the device file.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct mailbox_msg mail_to_send;&lt;br /&gt;
int fd_device;&lt;br /&gt;
&lt;br /&gt;
fd_device = open(&amp;quot;/dev/anybus0_interface&amp;quot;, O_RDONLY);&lt;br /&gt;
&lt;br /&gt;
/* Fill the mail_to_send structure fields here */&lt;br /&gt;
&lt;br /&gt;
if((ret = ioctl(fd_device, ANYBUS_MB_WRITE, &amp;amp;mail_to_send)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;ioctl&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
close(fd_device);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Map input area====&lt;br /&gt;
* Declare a structure anybus_frame.&lt;br /&gt;
* Open the device file.&lt;br /&gt;
* Do the ioctl command ANYBUS_MAP_INPUT.&lt;br /&gt;
* Close the device file.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct anybus_frame frame;&lt;br /&gt;
int fd_device;&lt;br /&gt;
&lt;br /&gt;
fd_device = open(&amp;quot;/dev/anybus0_interface&amp;quot;, O_RDONLY);&lt;br /&gt;
&lt;br /&gt;
if ((ret = ioctl(fd_device, ANYBUS_MAP_INPUT, frame.data)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;ioctl&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The frame.data field has been filled */&lt;br /&gt;
&lt;br /&gt;
close(fd_device);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Map output area====&lt;br /&gt;
* Declare a structure anybus_frame.&lt;br /&gt;
* Open the device file.&lt;br /&gt;
* Do the ioctl command ANYBUS_MAP_OUTPUT.&lt;br /&gt;
* Close the device file.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct anybus_frame frame;&lt;br /&gt;
int fd_device;&lt;br /&gt;
&lt;br /&gt;
fd_device = open(&amp;quot;/dev/anybus0_interface&amp;quot;, O_RDONLY);&lt;br /&gt;
&lt;br /&gt;
if ((ret = ioctl(fd_device, ANYBUS_MAP_OUTPUT, frame.data)) &amp;lt; 0)&lt;br /&gt;
    return ret;&lt;br /&gt;
&lt;br /&gt;
/* The frame.data field has been filled */&lt;br /&gt;
&lt;br /&gt;
close(fd_device);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Read anybus register====&lt;br /&gt;
* Declare a structure anybus_frame.&lt;br /&gt;
* Open the device file.&lt;br /&gt;
* Give the address register (here 0x7D5)&lt;br /&gt;
* Do the ioctl command ANYBUS_MAP_OUTPUT.&lt;br /&gt;
* Close the device file.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct anybus_register anybus_reg&lt;br /&gt;
int fd_device;&lt;br /&gt;
&lt;br /&gt;
fd_device = open(&amp;quot;/dev/anybus0_interface&amp;quot;, O_RDONLY);&lt;br /&gt;
&lt;br /&gt;
anybus_reg.address = 0x7D5;&lt;br /&gt;
&lt;br /&gt;
if ((ret = ioctl(fd_device, ANYBUS_READ_REG, &amp;amp;anybus_reg)) &amp;lt; 0) {&lt;br /&gt;
                return ret;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
/* The anybus_reg.value field has been filled */&lt;br /&gt;
&lt;br /&gt;
close(fd_device);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===closing the socket===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
close(sock);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://www.hms.se/ HMS Website]&lt;br /&gt;
* [http://www.hms.se/upload/Anybus-S-2401-ABS_M_Parallel_DG_2_08_SCM-1200-015.pdf HMS Anybus General Design Guide]&lt;br /&gt;
* [http://libmodbus.org/ libmodbus: Multi-plateform modbus library] (Used for test)&lt;br /&gt;
* [http://www.linuxhowtos.org/C_C++/socket.htm A socket tutorial]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=HMS_anybus_Linux&amp;diff=9901</id>
		<title>HMS anybus Linux</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=HMS_anybus_Linux&amp;diff=9901"/>
				<updated>2011-07-27T10:13:12Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{Under_Construction}}&lt;br /&gt;
&lt;br /&gt;
* The Anybus module allows the Armadeus board to communicate on 18 differents industrial network such as Profibus, Modbus-TCP/RTU, CANOpen, ...&lt;br /&gt;
* The following instructions is relative to Armadeus boards APF51-Dev and APF51 with FPGA. Please ensure you use the trunk version of Armadeus.&lt;br /&gt;
&lt;br /&gt;
==Creation of the FPGA design with POD==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
==Kernel configuration==&lt;br /&gt;
&lt;br /&gt;
In your Armadeus directory, select the HMS Anybus linux driver anybus_interface:&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;   HMS Anybus driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Loading the modules driver==&lt;br /&gt;
&lt;br /&gt;
* Load the driver generated by POD.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # modprobe pod_anybus_interface_platform&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Load the kernel driver.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # modprobe anybus_interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Check if the interface anybus0 is available.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ifconfig anybus0&lt;br /&gt;
 anybus0   Link encap:UNSPEC  HWaddr 00-45-02-10-A0-0A-33-C7-00-00-00-00-00-00-00-00  &lt;br /&gt;
          NOARP  MTU:520  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:10 &lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
          Interrupt:83 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* HWaddr :&lt;br /&gt;
** The two first bytes : 00-45 is the fieldbus type ([http://www.hms.se/upload/Anybus-S-2401-ABS_M_Parallel_DG_2_08_SCM-1200-015.pdf Anybus-S Parallel Design Guide] p21). Here, it is an anybus Modbus RTU module.&lt;br /&gt;
** 02-10 is the Application Interface Software Version bytes ([http://www.hms.se/upload/Anybus-S-2401-ABS_M_Parallel_DG_2_08_SCM-1200-015.pdf Anybus-S Parallel Design Guide] p20)&lt;br /&gt;
** A0-0A-33-C7 is the Module Serial Number ([http://www.hms.se/upload/Anybus-S-2401-ABS_M_Parallel_DG_2_08_SCM-1200-015.pdf Anybus-S Parallel Design Guide] p20).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Mount the interface.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ifconfig anybus0 up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the surface mounted LED on the Anybus module (not the front LEDs). This LED should blink at 1Hz if the module is initialised, and 2Hz if not.&lt;br /&gt;
Then, you can use the interface.&lt;br /&gt;
&lt;br /&gt;
==anybus-tools==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
anybus-tools is a set of tools used to communicate with your HMS Anybus module through the anybus_interface Linux driver.&lt;br /&gt;
&lt;br /&gt;
===Installation on your target===&lt;br /&gt;
&lt;br /&gt;
* In your Armadeus directory on your host:&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;
* Choose anybus-tools&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;
  Armadeus specific tools/utilities  ---&amp;gt;&lt;br /&gt;
    [*] anybus-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reflash your rootfs.&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
&lt;br /&gt;
* In the APF environnement&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # anybus-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The first window ask you which anybus interface you want to use (anybus0 by default).&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
====Edit input area====&lt;br /&gt;
* Move in the HMS Anybus input area memory with arrow keys and edit a field hitting the &amp;lt; Enter &amp;gt; key.&lt;br /&gt;
[[Image:Capture_anybus_tools_edit_input.png|400px|frameless|border|Edit input area memory]]&lt;br /&gt;
====Map output area====&lt;br /&gt;
* Move in the HMS Anybus output area memory with arrow keys to watch messages received by the module.&lt;br /&gt;
====Mailbox message====&lt;br /&gt;
* Send and receive mailbox messages.&lt;br /&gt;
[[Image:Capture_anybus_tools_mailbox.png‎|400px|frameless|border|Mailbox interface]]&lt;br /&gt;
====Read register====&lt;br /&gt;
* Read a specific register in the HMS Anybus module memory.&lt;br /&gt;
====Change interface====&lt;br /&gt;
* Choose a different anybus interface.&lt;br /&gt;
====About...====&lt;br /&gt;
* Show &amp;quot;About...&amp;quot; dialog. &lt;br /&gt;
====Help====&lt;br /&gt;
* Display some help ...&lt;br /&gt;
&lt;br /&gt;
==Programmation==&lt;br /&gt;
The anybus_interface driver is accessible by a short C program (as a classic network interface). However, some informations and options need to be set.&lt;br /&gt;
Please include net/anybus_interface.h&lt;br /&gt;
&lt;br /&gt;
===Initialization===&lt;br /&gt;
* Declare some structures and variable&lt;br /&gt;
** Structure ifreq will be used to do network interface request&lt;br /&gt;
** Structure sockaddr_ll is a socket descriptor.&lt;br /&gt;
** int sk is the socket id.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct ifreq ifr;&lt;br /&gt;
struct sockaddr_ll addr;&lt;br /&gt;
int sock = 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Initialize some fields&lt;br /&gt;
** The anybus_interface driver use AF_PACKET family with the non-connected protocole.&lt;br /&gt;
** Put the interface name in the ifreq structure.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
addr.sll_family = AF_PACKET;&lt;br /&gt;
addr.sll_protocol = IPPROTO_UDP;&lt;br /&gt;
addr.sll_pkttype = PACKET_BROADCAST;&lt;br /&gt;
&lt;br /&gt;
strncpy(ifr.ifr_name, &amp;quot;anybus0&amp;quot;, strlen(&amp;quot;anybus0&amp;quot;));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create the socket&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
if ((sock = socket(PF_PACKET , SOCK_RAW, AF_PACKET)) &amp;lt; 0 ) {&lt;br /&gt;
    perror(&amp;quot;socket&amp;quot;);&lt;br /&gt;
    return sock;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* And associate it with the anybus network interface&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
ioctl(sock, SIOCGIFINDEX, &amp;amp;ifr);&lt;br /&gt;
addr.sll_ifindex = ifr.ifr_ifindex;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Bind the descriptor to the socket&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
if(bind(sock, (struct sockaddr *)&amp;amp;addr, sizeof(addr)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;bind&amp;quot;);&lt;br /&gt;
    return EXIT_FAILURE;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Communication (send/recv)===&lt;br /&gt;
&lt;br /&gt;
* First, you have to declare an anybus_frame structure&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct anybus_frame frame;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* This structure contain 3 fields :&lt;br /&gt;
** .reg : offset register of the anybus input/output memory.&lt;br /&gt;
** .len : Length of the data in this frame. The max len is given by ANYBUS_DATA_LEN.&lt;br /&gt;
** .data[n] : value at the address offset + n.&lt;br /&gt;
&lt;br /&gt;
* Initialize and send the frame on the fieldbus&lt;br /&gt;
** The following code will write the 16bits words 0x1234 and 0x9876 in the HMS Anybus input memory at the address 0x12 and 0x14 (16bits access)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
frame.reg = 0x12;&lt;br /&gt;
frame.len = 2;&lt;br /&gt;
frame.data[0] = 0x1234;&lt;br /&gt;
frame.data[1] = 0x9876;&lt;br /&gt;
&lt;br /&gt;
if ((ret = send(sock, (void *)&amp;amp;frame, sizeof(frame), 0)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;send&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Receive a frame on the fieldbus&lt;br /&gt;
** The following code will receive the values read in the HMS Anybus Output memory. The frame.reg will be always 0 and .len will be always 256.&lt;br /&gt;
** The recv() function is blocking until the HMS Anybus Output memory is changed.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
if((ret = recv(sock, (void *)&amp;amp;frame, sizeof(frame), 0)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;recv&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ioctl===&lt;br /&gt;
&lt;br /&gt;
* Anybus ioctls are independent of the socket id. The driver implement a char device /dev/anybusX_device.&lt;br /&gt;
* Five ioctls commands are available.&lt;br /&gt;
* The structure given to the ioctl commands is: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct mailbox_msg {&lt;br /&gt;
	unsigned short id;&lt;br /&gt;
	unsigned short msg_information;&lt;br /&gt;
	unsigned short command_number;&lt;br /&gt;
	unsigned short data_size;&lt;br /&gt;
	unsigned short extended_word[8];&lt;br /&gt;
	unsigned short data[ANYBUS_DATA_LEN];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct anybus_register {&lt;br /&gt;
	unsigned short address;&lt;br /&gt;
	unsigned short value;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mailbox read====&lt;br /&gt;
* Initialize a mailbox_msg structure and a file id.&lt;br /&gt;
* Open the device's file.&lt;br /&gt;
* Do the ioctl command ANYBUS_MB_READ.&lt;br /&gt;
* close the device file.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct mailbox_msg received_mail;&lt;br /&gt;
int fd_device;&lt;br /&gt;
&lt;br /&gt;
fd_device = open(&amp;quot;/dev/anybus0_interface&amp;quot;, O_RDWR);&lt;br /&gt;
&lt;br /&gt;
if((ret = ioctl(fd_device, ANYBUS_MB_READ, &amp;amp;received_mail)) &amp;lt; 0) {&lt;br /&gt;
    perror(&amp;quot;ioctl&amp;quot;);&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
close(fd_device);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mailbox write====&lt;br /&gt;
* Initialize a mailbox_msg structure :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct mailbox_msg mail_to_send;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Map input area====&lt;br /&gt;
====Map output area====&lt;br /&gt;
====Read anybus register====&lt;br /&gt;
&lt;br /&gt;
===closing the socket===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
close(sock);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=File:Capture_anybus_tools_mailbox.png&amp;diff=9900</id>
		<title>File:Capture anybus tools mailbox.png</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=File:Capture_anybus_tools_mailbox.png&amp;diff=9900"/>
				<updated>2011-07-27T09:01:56Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: Print screen anybus tools mailbox interface&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Print screen anybus tools mailbox interface&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=File:Capture_anybus_tools_edit_input.png&amp;diff=9899</id>
		<title>File:Capture anybus tools edit input.png</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=File:Capture_anybus_tools_edit_input.png&amp;diff=9899"/>
				<updated>2011-07-27T09:00:35Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: Print screen of the anybus tools edit input&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Print screen of the anybus tools edit input&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=HMS_anybus_Linux&amp;diff=9869</id>
		<title>HMS anybus Linux</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=HMS_anybus_Linux&amp;diff=9869"/>
				<updated>2011-07-18T09:30:48Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{Under_Construction}}&lt;br /&gt;
&lt;br /&gt;
* The Anybus module allows the Armadeus board to communicate on 18 differents industrial network such as Profibus, Modbus-TCP/RTU, CANOpen, ...&lt;br /&gt;
* The following instructions is relative to Armadeus boards APF51-Dev and APF51 with FPGA. Please ensure you use the trunk version of Armadeus.&lt;br /&gt;
&lt;br /&gt;
==Creation of the FPGA design with POD==&lt;br /&gt;
&lt;br /&gt;
==Kernel configuration==&lt;br /&gt;
&lt;br /&gt;
In your Armadeus directory:&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;   HMS Anybus driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Loading the modules driver==&lt;br /&gt;
&lt;br /&gt;
* Load the driver generated by POD.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # modprobe pod_anybus_interface_platform&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Load the kernel driver.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # modprobe anybus_interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Check if the interface anybus0 is available.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ifconfig anybus0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If yes, mount it.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ifconfig anybus0 up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the surface mounted LED on the Anybus module (not the front LEDs). This LED should blink at 1Hz if the module is initialised, and 2Hz if not.&lt;br /&gt;
Then, you can use the interface.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=HMS_anybus_Linux&amp;diff=9868</id>
		<title>HMS anybus Linux</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=HMS_anybus_Linux&amp;diff=9868"/>
				<updated>2011-07-18T09:27:13Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: New page:  {{Under_Construction}}  * The Anybus module allow the Armadeus board to communicate on 18 differents industrial network like such as Profibus, Modbus-TCP/RTU, CANOpen, ... * The following...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; {{Under_Construction}}&lt;br /&gt;
&lt;br /&gt;
* The Anybus module allow the Armadeus board to communicate on 18 differents industrial network like such as Profibus, Modbus-TCP/RTU, CANOpen, ...&lt;br /&gt;
* The following instructions is relative to Armadeus boards APF51-Dev and APF51 with FPGA. Please ensure you use the trunk version of Armadeus.&lt;br /&gt;
&lt;br /&gt;
==Creation of the FPGA design with POD==&lt;br /&gt;
&lt;br /&gt;
==Kernel configuration==&lt;br /&gt;
&lt;br /&gt;
In your Armadeus directory:&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;   HMS Anybus driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Loading the modules driver==&lt;br /&gt;
&lt;br /&gt;
* Load the driver generated by POD.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # modprobe pod_anybus_interface_platform&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Load the kernel driver.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # modprobe anybus_interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Check if the interface anybus0 is available.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ifconfig anybus0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If yes, mount it.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ifconfig anybus0 up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the surface mounted LED on the Anybus module (not the front LEDs). This LED should blink at 1Hz if the module is initialised, and 2Hz if not.&lt;br /&gt;
Then, you can use the interface.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=Functionalities&amp;diff=9867</id>
		<title>Functionalities</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=Functionalities&amp;diff=9867"/>
				<updated>2011-07-18T08:44:22Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Functionalities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Functionalities=&lt;br /&gt;
This page lists all the hardware/software functionnalities available on the boards. &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;
==Audio==&lt;br /&gt;
===Audio Out===&lt;br /&gt;
*[[TSC2102_Linux_driver | Audio codec]]: TSC2102/TSC2101 audio codec &lt;br /&gt;
*[[Audio_with_PWM|PWM]]: sound generation using a PWM&lt;br /&gt;
*[[MAX9768| Amplifier]]: MAX9768 10W mono class D audio amplifier&lt;br /&gt;
&lt;br /&gt;
===Audio In===&lt;br /&gt;
*[[TSC2102_Linux_driver|Audio codec]]: TSC2101 audio codec&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
*[[ALSA]]: Advanced Linux Sound Architecture&lt;br /&gt;
*[[Madplay]]: Audio player for Unixes&lt;br /&gt;
*[[SDL]]: cross-platform multimedia library&lt;br /&gt;
*[[Gstreamer]]&lt;br /&gt;
*[[Flite]]: fast run-time voice synthesis engine&lt;br /&gt;
*[[Speex]]: speech codec&lt;br /&gt;
*[[Imxssi]]: simple low level I2S development/debug tool&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
==Video==&lt;br /&gt;
===Video Out===&lt;br /&gt;
*[[LCD]]&lt;br /&gt;
*[[BackLight]]&lt;br /&gt;
*[[DVI_/_HDMI]]&lt;br /&gt;
*[[TV_Output]]&lt;br /&gt;
*[[FrameBuffer]]&lt;br /&gt;
&lt;br /&gt;
===Video In===&lt;br /&gt;
*[[Camera_interface]]:&lt;br /&gt;
*[[C38A]]: CMOS sensor module (OV7620)&lt;br /&gt;
*[[GscpaWebcam]]: GSPCA compatible USB webcams&lt;br /&gt;
*[[PWC_Webcams]]&lt;br /&gt;
*[[USB_Webcams]]&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
*[[Video_for_Linux]]: Video 4 Linux&lt;br /&gt;
*[[Qt/Embedded]]: cross-platform general purpose API&lt;br /&gt;
*[[SDL]]: cross-platform multimedia library&lt;br /&gt;
*[[Gstreamer]]&lt;br /&gt;
*[[OpenCV]]&lt;br /&gt;
*[[FBGrab]]: Frame Buffer Grabber&lt;br /&gt;
*[[Mesa]]: Mesa 3D Graphics library&lt;br /&gt;
*[[Using_the_i.MX27_video_codec]]&lt;br /&gt;
*[[LCD4linux]]: driving low cost text and graphical LCD displays&lt;br /&gt;
&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;
==Wired Communication==&lt;br /&gt;
===UART/RS232===&lt;br /&gt;
*[[RS-232]]: global description&lt;br /&gt;
*[[Activate_i.MX_internal_UARTs]]&lt;br /&gt;
*[[Serial_ports_usage_on_Linux]]&lt;br /&gt;
*[[Serial_port_selection_generalities]]: to be merged with previous entry. text ok ??, copied in usb serial&lt;br /&gt;
*[[OpenCore_16550_IP_Linux_driver|Linux driver for the 16C550 FPGA IP (from OpenCore)]]&lt;br /&gt;
*[[USB_to_serial_adapter]]&lt;br /&gt;
*[[USB_Gadget#To_emulate_a_serial_link| USB gadget serial emulation]]&lt;br /&gt;
*[[Cu/uucp]]  To Be Completed&lt;br /&gt;
*[[RS232_Terminal_configuration]]: host applications to take control of your RS232 link&lt;br /&gt;
*[[Serial_Transfer|Serial transfers from Linux]]&lt;br /&gt;
&lt;br /&gt;
===I2C===&lt;br /&gt;
*[[I2C]]&lt;br /&gt;
*[[I2cread.c]]&lt;br /&gt;
*[[I2cwrite.c]]&lt;br /&gt;
&lt;br /&gt;
===SPI===&lt;br /&gt;
*[[SPI]]: To be completed (spi_dev modif in platform)&lt;br /&gt;
&lt;br /&gt;
===Ethernet / Network===&lt;br /&gt;
* manque une page pour décrire l'interface ethernet + commandes de bases sous linux/uboot&lt;br /&gt;
*[[Ethernet_MAC_address]]&lt;br /&gt;
*[[USB_to_Ethernet_adapter]]&lt;br /&gt;
*[[USB_Gadget#To_emulate_an_Ethernet_link|USB gadget ethernet emulation]]&lt;br /&gt;
*[[FTP]], [[NFS]], [[SSH]], [[Telnet]], [[Tftpboot]]&lt;br /&gt;
*[[Boa]]: BOA web server&lt;br /&gt;
*[[Ethernet console]] (in U-Boot)&lt;br /&gt;
*[[Network interface bandwidth measurement]]&lt;br /&gt;
&lt;br /&gt;
===USB===&lt;br /&gt;
*[[USB]]: create USB_OTG entry and delete this one&lt;br /&gt;
*[[USB_Host]]&lt;br /&gt;
*[[USB_Gadget]]&lt;br /&gt;
*[[USB_to_Ethernet_adapter]]&lt;br /&gt;
*[[USB_to_WiFi_adapter]]&lt;br /&gt;
*[[USB_to_serial_adapter]]: still under construction ?&lt;br /&gt;
*[[USB Boot]] (Linux)&lt;br /&gt;
*[[USB Webcams]]&lt;br /&gt;
*[[USB to Playstation joypad adapter]]&lt;br /&gt;
&lt;br /&gt;
===CAN Bus===&lt;br /&gt;
*[[CAN_bus_Linux_driver|MCP251X CAN bus controller]]&lt;br /&gt;
*[[CAN_bus_demo_MCP25020|Communication with a Microchip MCP25020 CAN I/O Expander]]&lt;br /&gt;
*[[CAN_bus_Linux_sja1000|SJA1000 CAN Bus controller]]&lt;br /&gt;
&lt;br /&gt;
===HMS Modules===&lt;br /&gt;
*[[HMS_anybus_Linux|HMS Anybus]]&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
==Wireless==&lt;br /&gt;
===Wifi===&lt;br /&gt;
*[[WiFi|WiFi general usage (from Linux)]]&lt;br /&gt;
*[[USB_to_WiFi_adapter|How to use USB to WiFi adapters on your boards]]&lt;br /&gt;
*[[Libertas_driver]]: Marvell Technology Group's Libertas chipset drivers&lt;br /&gt;
*[[WPA supplicant]]&lt;br /&gt;
&lt;br /&gt;
===GSM/GPRS===&lt;br /&gt;
*[[GSM/GPRS]]&lt;br /&gt;
&lt;br /&gt;
===Bluetooth===&lt;br /&gt;
*[[Bluetooth]]&lt;br /&gt;
*[[OBEX]]&lt;br /&gt;
*[[TCP/IP_with_Bluetooth]]&lt;br /&gt;
*[[Wiimote]]&lt;br /&gt;
&lt;br /&gt;
===GPS===&lt;br /&gt;
*[[GPS]]&lt;br /&gt;
*[[GPS_daemon]]: service daemon monitoring one or more GPSes or AIS receivers&lt;br /&gt;
&lt;br /&gt;
===IR===&lt;br /&gt;
*[[IR_HID_USB_Remote|Infrared USB HID remote ]]&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;
==Storage / File System==&lt;br /&gt;
*[[MultiMediaCard]]&lt;br /&gt;
*[[USB_Host#USB_Flash_memory_.2F_USB_key_.2F_USB_card_reader_.2F_USB_Hard_Drive|USB drive/dongle usage]]&lt;br /&gt;
*[[USB_Gadget#To_emulate_a_mass_storage_device:|USB gadget mass storage emulation]]&lt;br /&gt;
*[[Create_a_FLASH_partition_to_store_user's_HOME]]&lt;br /&gt;
*[[UBIFS]]&lt;br /&gt;
*[[Using_Initial_RAM_disk]]: still nder construction ?&lt;br /&gt;
*[[Samba]]: access Windows remote partitions&lt;br /&gt;
*[[Network_File_System_configuration|Network File System (NFS)]]&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
==Realtime==&lt;br /&gt;
===Xenomai===&lt;br /&gt;
*[[Xenomai]]: real time co-kernel which cooperate with Linux via Adeos&lt;br /&gt;
*[[Xenomai:Blinking_LEDs]]: Xenomai:examples_usage&lt;br /&gt;
*[[Xenomai_manual_installation]]&lt;br /&gt;
*[[Adeos]]&lt;br /&gt;
&lt;br /&gt;
===RTC===&lt;br /&gt;
*[[RTC]]&lt;br /&gt;
*[[Watchdog]]&lt;br /&gt;
&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;
==User Input==&lt;br /&gt;
*[[USB_Host#USB_keyboard.2Fmouse_.28HID:_Human_Interface_Device.29| USB input device]]&lt;br /&gt;
*[[Keypad]]: keypad based on GPIO matrix&lt;br /&gt;
*[[GPIO keys]]: User button connected to a GPIO&lt;br /&gt;
*[[Joystick]]: still under construction ?&lt;br /&gt;
*[[PS/2]]: APF9328 only&lt;br /&gt;
*[[TSC2102_Linux_driver| Touchscreen]]: TSC210x 4 wires resistive touch controler&lt;br /&gt;
*[[APF51_PMIC|touchscreen]]: APF51 PMIC 4/5 wires resistive touch controler&lt;br /&gt;
*[[GPM]]: mouse support for Linux on the console&lt;br /&gt;
*[[Wiimote]]&lt;br /&gt;
*[[Tslib]]: Linux touchscreen interface&lt;br /&gt;
*[[USB to Playstation joypad adapter]]&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
*[[AS1531|AS1531]]: 8 channels 12bits ADC (SPI)&lt;br /&gt;
* [[MCP4912|MCP4912]]: 2 channels 10bits DAC (SPI)&lt;br /&gt;
*[[ADC_max1027|MAX1027]]: 8 channels 10bits ADC (SPI)&lt;br /&gt;
*[[Max5821|MAX5821]]: 2 channels 10bits DAC (I2C)&lt;br /&gt;
*[[BQ27x00]]: series of battery gas gauge&lt;br /&gt;
*[[GPIO Driver]]&lt;br /&gt;
*[[JTAG]]&lt;br /&gt;
*[[Led_sensor|Using a LED as a light sensor]]&lt;br /&gt;
*[[URG_laser]]&lt;br /&gt;
*[[PWM]]&lt;br /&gt;
*[[Watchdog]]&lt;br /&gt;
&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;
==Bootloader==&lt;br /&gt;
*[[BootLoader | U-Boot useful tips]]&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
==Bootstrap==&lt;br /&gt;
* [[BootStrap | Install U-Boot from scratch or recover your U-Boot if it was corrupted]]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=CAN_bus_Linux_sja1000&amp;diff=9715</id>
		<title>CAN bus Linux sja1000</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=CAN_bus_Linux_sja1000&amp;diff=9715"/>
				<updated>2011-05-30T07:19:35Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explain how to communicate with a CAN bus through the SJA1000 CAN controller and a TJA1040 CAN Transceiver.&lt;br /&gt;
{{Warning| There is no SJA1000 CAN controller on ARMadeus boards, you have to create your own assembly. The assembly used for doing this test is given on this page.}}&lt;br /&gt;
&lt;br /&gt;
== Hardware Requirements ==&lt;br /&gt;
* APF27-Dev and APF27 with FPGA Spartan 3A&lt;br /&gt;
* 8 bits transceiver 74LVXC3245 (2x)&lt;br /&gt;
* CAN bus controller SJA1000&lt;br /&gt;
* 24Mhz oscillator MXO45HST24M0000&lt;br /&gt;
* CAN bus transceiver TJA1040&lt;br /&gt;
* Resistors and capacitances&lt;br /&gt;
&lt;br /&gt;
== Realisation of the assembly ==&lt;br /&gt;
Foremost, you have to create the following assembly.&lt;br /&gt;
{{Note|The decoupling capacitances are not displayed on this schematic.}}&lt;br /&gt;
[[Image:Sja1000-APF27Dev-Mounting.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
I have decomposed this assembly in three stage. For further informations, please read datasheets!&lt;br /&gt;
*'''Stage 1 - Adaptation'''&lt;br /&gt;
The purpose of this stage is to convert the FPGA's signals 3V3 in 5V signals. The transceiver 74LVXC3245 convert the bidirectionnal signals A0..A7 and the outputs ALE/AS, CS#, RD#/E and WR# from the FPGA.&lt;br /&gt;
The connector P1 is connected to J20 on APF27-Dev.&lt;br /&gt;
{{Note|The 3V3 voltage is supplied by the 39th pin of P1.}}&lt;br /&gt;
*'''Stage 2 - CAN bus Controller'''&lt;br /&gt;
The CAN bus controller receives messages from the adaptation stage (1). It is clocked with a 24Mhz Oscillator MXPO45HST24M0000. The SJA1000 send/receive message on/from the bus by communication with the TJA1040 on stage 3.&lt;br /&gt;
{{Note| In our case, the interruption pin of the SJA1000 (INT#) is soldered on the switch S1 on the APF27-Dev but it is possible to through the FPGA!}}&lt;br /&gt;
*'''Stage 3 - Communication with CAN bus'''&lt;br /&gt;
The TJA1040 ensures the communication between the SJA1000 controller and the CAN bus. The split pin is used to stabilize the common mode and must be wired to GND.&lt;br /&gt;
&lt;br /&gt;
== Connection pinout with APF27dev (J20) ==&lt;br /&gt;
3V3 is supplied by pin 39 from J20 on APF27-Dev. This pin is wired to pin 1 for each 8-Bits transceivers.&lt;br /&gt;
&lt;br /&gt;
'''Buffer U2 - address &amp;amp; data'''&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;J3 Pinout&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! ''' J20 - Pins ''' || '''Name on APF27-Dev schematic''' || ''' Functionnalities '''&lt;br /&gt;
|----------------&lt;br /&gt;
| 13 || IO_L24P_3 || AD0&lt;br /&gt;
|----------------&lt;br /&gt;
| 14 || IO_L24N_3 || AD1&lt;br /&gt;
|----------------&lt;br /&gt;
| 15 || IO_L23P_3 || AD2&lt;br /&gt;
|----------------&lt;br /&gt;
| 16 || IO_L23N_3 || AD3&lt;br /&gt;
|----------------&lt;br /&gt;
| 17 || IO_L22P_3 || AD4&lt;br /&gt;
|----------------&lt;br /&gt;
| 18 || IO_L22N_3 || AD5&lt;br /&gt;
|----------------&lt;br /&gt;
| 19 || IO_L20P_3 || AD6&lt;br /&gt;
|----------------&lt;br /&gt;
| 20 || IO_L20N_3 || AD7&lt;br /&gt;
|----------------&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Buffer U1 - control'''&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;J3 Pinout&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! ''' J20 - Pins ''' || '''Name on APF27-Dev schematic''' || ''' Functionnalities '''&lt;br /&gt;
|----------------&lt;br /&gt;
| 29 || IO_L08P_3 || ALE/AS&lt;br /&gt;
|----------------&lt;br /&gt;
| 31 || IO_L03P_3 || CS#&lt;br /&gt;
|----------------&lt;br /&gt;
| 32 || IO_L03N_3 || RD#/E&lt;br /&gt;
|----------------&lt;br /&gt;
| 33 || IO_L02P_3 || WR#&lt;br /&gt;
|----------------&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== VHDL Description ==&lt;br /&gt;
The VHDL description is used to communicate with the assembly respecting the communication protocole of the SJA1000.&lt;br /&gt;
Load the firmware in the FPGA of the ARMadeus Board.&lt;br /&gt;
Please, ask ARMadeus for source code.&lt;br /&gt;
&lt;br /&gt;
== Write a Linux device platform source ==&lt;br /&gt;
Actually, the driver of the SJA1000 si present in the kernel, but the module can't be probed.&lt;br /&gt;
You have to write your device module, the structures of this device module must be similar with the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
	static struct resource sja1000_resources[] = {&lt;br /&gt;
	[0] = {&lt;br /&gt;
		.start = ARMADEUS_FPGA_BASE_ADDR + SJA1000_WISHBONE_ADDRESS_BASE,&lt;br /&gt;
		.end = ARMADEUS_FPGA_BASE_ADDR + SJA1000_WISHBONE_ADDRESS_BASE + 0x1ff,&lt;br /&gt;
		.flags = IORESOURCE_MEM | IORESOURCE_MEM_16BIT,&lt;br /&gt;
	},&lt;br /&gt;
	[1] = {&lt;br /&gt;
		.start = gpio_to_irq(IO_PIN_IRQ_SJA1000),&lt;br /&gt;
		.end     = gpio_to_irq(IO_PIN_IRQ_SJA1000),&lt;br /&gt;
		.flags   = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE,&lt;br /&gt;
	},&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
static struct sja1000_platform_data sja1000_pdata = {&lt;br /&gt;
	.osc_freq = 24000000,&lt;br /&gt;
	.ocr = OCR_MODE_NORMAL | OCR_TX0_PULLDOWN | OCR_TX1_PULLDOWN,&lt;br /&gt;
	.cdr = CDR_PELICAN | CDR_CBP,&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Ask ARMadeus for source code.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Add the driver in your Linux configuration&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;
  [*] Networking support  ---&amp;gt; &lt;br /&gt;
    &amp;lt;M&amp;gt;   CAN bus subsystem support  ---&amp;gt;&lt;br /&gt;
      CAN Device Drivers  ---&amp;gt;&lt;br /&gt;
        &amp;lt;M&amp;gt; Philips/NXP SJA1000 devices  ---&amp;gt;&lt;br /&gt;
          &amp;lt;M&amp;gt;   Generic Platform Bus based SJA1000 driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Load the module&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 can-bcm&lt;br /&gt;
  # modprobe sja1000_platform&lt;br /&gt;
  # modprobe your_sja1000_device_module&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set the bitrate and set the interface up&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 1250000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then you can use your new CAN interface with the tools used on others page about CAN bus on ARMadeus boards.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
'''datasheets'''&lt;br /&gt;
* [http://www.nxp.com/documents/data_sheet/SJA1000.pdf CAN bus controller sja1000]&lt;br /&gt;
* [http://www.nxp.com/documents/data_sheet/TJA1040.pdf CAN bus transceiver tja1040]&lt;br /&gt;
* [http://ieee.ucsd.edu/wiki/_media/projects/robomagellan/74lvxc3245_3-5v_level_translator.pdf 8-bits transceiver lvxc3245]&lt;br /&gt;
* [http://www.ctscorp.com/components/Datasheets/008-0258-0_E.pdf 24Mhz oscillator MXO45HST 24M0000]&lt;br /&gt;
&lt;br /&gt;
[[Category:CAN bus]]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=CAN_bus_Linux_driver&amp;diff=9697</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=9697"/>
				<updated>2011-05-19T22:27:09Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Links */&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 linux-2.6.38.1 is required) before trying the instructions described on this page!}}&lt;br /&gt;
&lt;br /&gt;
==Driver installation==&lt;br /&gt;
Nothing has to be done for the APF51Dev.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For the APF27Devfull:&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;
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 linux26&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&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 can interface can0 on 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 I try to set the bitrate! }}&lt;br /&gt;
&lt;br /&gt;
If the following error occurs when you do the last instruction :&lt;br /&gt;
&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>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=CAN_bus_demo_MCP25020&amp;diff=9696</id>
		<title>CAN bus demo MCP25020</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=CAN_bus_demo_MCP25020&amp;diff=9696"/>
				<updated>2011-05-19T22:25:59Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is related with the DEMOS_MCP25020 package. This software show how to communicate easily on a CAN bus, particularly with the Microchip MCP25020 I/O Expander. This chip is used on the Microchip kit MCP2515DM-PCTL:&lt;br /&gt;
http://fr.farnell.com/microchip/mcp2515dm-pctl/kit-d-eval-mcp2515-controleur-can/dp/1332096&lt;br /&gt;
&lt;br /&gt;
{{Warning| Please ensure that you use the trunk version of armadeus (kernel linux-2.6.38.1 is required) before trying the instructions described on this page!}}&lt;br /&gt;
&lt;br /&gt;
==Driver installation==&lt;br /&gt;
Please refer to this page (under the '''Driver installation''' section): http://www.armadeus.com/wiki/index.php?title=CAN_bus_Linux_driver#Driver_installation&lt;br /&gt;
&lt;br /&gt;
Then, try the instructions in the '''Usage''' and '''Quick test''' sections to check if the CAN network is working correctly.&lt;br /&gt;
&lt;br /&gt;
==Software installation==&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;
        Armadeus specific tools/utilities  ---&amp;gt;&lt;br /&gt;
            [*] Armadeus misc demos&lt;br /&gt;
            Choose the demos to install  ---&amp;gt;&lt;br /&gt;
                [*] DEMOS_MCP25020&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;
* Reflash rootfs&lt;br /&gt;
&lt;br /&gt;
==Assembly==&lt;br /&gt;
First and foremost, you have to create the bus with the two nodes.&lt;br /&gt;
* Add the APF27 as the first node:&lt;br /&gt;
** The pin to connect your APF27-Dev to the CAN bus is on the J13 connector.&lt;br /&gt;
&lt;br /&gt;
[[Image:APF27DEV-J13-localisation.png]]&lt;br /&gt;
[[Image:APF27DEV-J13-PINOUT.png‎]]&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;J13 Pinout&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! ''' J13 - Pins ''' || ''' Functionnalities '''&lt;br /&gt;
|----------------&lt;br /&gt;
| 1 || +3V3&lt;br /&gt;
|----------------&lt;br /&gt;
| 2 || CAN H&lt;br /&gt;
|----------------&lt;br /&gt;
| 3 ||  CAN L&lt;br /&gt;
|----------------&lt;br /&gt;
| 4 || GND&lt;br /&gt;
|----------------&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Check that the J11 is closed on your APF27-Dev board, it will add the end line 120ohm resistor of the CAN bus.&lt;br /&gt;
&lt;br /&gt;
* Add the Microchip kit MCP2515DM-PCTL ( Expander side ) to the CAN bus:&lt;br /&gt;
[[Image:MCP2515DM-PCTL-J3-localisation.png]]&lt;br /&gt;
[[Image:MCP2515DM-PCTL-J3-PINOUT.png‎]]&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;J3 Pinout&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! ''' J3 - Pins ''' || ''' Functionnalities '''&lt;br /&gt;
|----------------&lt;br /&gt;
| 1 || nc&lt;br /&gt;
|----------------&lt;br /&gt;
| 2 || GND&lt;br /&gt;
|----------------&lt;br /&gt;
| 3 ||  CAN L&lt;br /&gt;
|----------------&lt;br /&gt;
| 4 || CAN H&lt;br /&gt;
|----------------&lt;br /&gt;
| 5 || GND&lt;br /&gt;
|----------------&lt;br /&gt;
| 6 || nc&lt;br /&gt;
|----------------&lt;br /&gt;
| 7 ||  nc&lt;br /&gt;
|----------------&lt;br /&gt;
| 8 || +5V&lt;br /&gt;
|----------------&lt;br /&gt;
| 9 || nc&lt;br /&gt;
|----------------&lt;br /&gt;
| 10 || nc&lt;br /&gt;
|----------------&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Check that the JP3 is closed on the Microchip demo board, it will add the end line 120ohm resistor of the CAN bus.&lt;br /&gt;
&lt;br /&gt;
* Connect CAN L, CAN H and GND between your APF27-Dev and the MCP2515DM-PCTL&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;J13 Pinout&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! ''' APF27-Dev J13 pins ''' || ''' MCP2515DM-PCTL J3 pins ''' || ''' Functionnalities '''&lt;br /&gt;
|----------------&lt;br /&gt;
| 2 || 4 || CAN H&lt;br /&gt;
|----------------&lt;br /&gt;
| 3 || 3 ||  CAN L&lt;br /&gt;
|----------------&lt;br /&gt;
| 4 || 2 || GND&lt;br /&gt;
|----------------&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
Once your pins are correctly connected, launch your APF27-Dev Board.&lt;br /&gt;
With the demonstration program, you can:&lt;br /&gt;
* Listen on the bus&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mcp25020_ctrl listen&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
* Blink the D6 Led on the Microchip demo board&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mcp25020_ctrl led-blink [interval]&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Interval is 10 to 10000 (The blinking interval in ms)&lt;br /&gt;
* Turn ON or OFF the D6 Led on the Microchip demo board&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mcp25020_ctrl led-state [ON|OFF]&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Select ON or OFF to changing the led state.&lt;br /&gt;
* Get the state of the SW2 switch on the Microchip demo board (released or pushed)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mcp25020_ctrl sw2-get&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
* Get the status of MCP25020 configuration registers&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mcp25020_ctrl config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See the MCP25020 datasheet for more informations&lt;br /&gt;
&lt;br /&gt;
==Source code==&lt;br /&gt;
The program source of the demo is viewable in your ARMadeus repository target/demos/mcp25020_ctrl/mcp25020_ctrl.c&lt;br /&gt;
&lt;br /&gt;
==Examples program==&lt;br /&gt;
To create a program with CAN protocol in C/C++, Python, ... is similar to programming a TCP/IP protocol application. Both implement the UNIX socket. You can found some examples in the directory &amp;quot;test&amp;quot; of the socketcan sources, you can found them on:&lt;br /&gt;
* http://svn.berlios.de/wsvn/socketcan (trunk-&amp;gt;test)&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://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;amp;nodeId=1406&amp;amp;dDocName=en024094 (MCP2515 CAN PICtail Demo Board)&lt;br /&gt;
* http://ww1.microchip.com/downloads/en/DeviceDoc/21664D.pdf (MCP25020 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>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=CAN_bus_demo_MCP25020&amp;diff=9695</id>
		<title>CAN bus demo MCP25020</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=CAN_bus_demo_MCP25020&amp;diff=9695"/>
				<updated>2011-05-19T22:25:26Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is related with the DEMOS_MCP25020 package. This software show how to communicate easily on a CAN bus, particularly with the Microchip MCP25020 I/O Expander. This chip is used on the Microchip kit MCP2515DM-PCTL:&lt;br /&gt;
http://fr.farnell.com/microchip/mcp2515dm-pctl/kit-d-eval-mcp2515-controleur-can/dp/1332096&lt;br /&gt;
&lt;br /&gt;
{{Warning| Please ensure that you use the trunk version of armadeus (kernel linux-2.6.38.1 is required) before trying the instructions described on this page!}}&lt;br /&gt;
&lt;br /&gt;
==Driver installation==&lt;br /&gt;
Please refer to this page (under the '''Driver installation''' section): http://www.armadeus.com/wiki/index.php?title=CAN_bus_Linux_driver#Driver_installation&lt;br /&gt;
&lt;br /&gt;
Then, try the instructions in the '''Usage''' and '''Quick test''' sections to check if the CAN network is working correctly.&lt;br /&gt;
&lt;br /&gt;
==Software installation==&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;
        Armadeus specific tools/utilities  ---&amp;gt;&lt;br /&gt;
            [*] Armadeus misc demos&lt;br /&gt;
            Choose the demos to install  ---&amp;gt;&lt;br /&gt;
                [*] DEMOS_MCP25020&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;
* Reflash rootfs&lt;br /&gt;
&lt;br /&gt;
==Assembly==&lt;br /&gt;
First and foremost, you have to create the bus with the two nodes.&lt;br /&gt;
* Add the APF27 as the first node:&lt;br /&gt;
** The pin to connect your APF27-Dev to the CAN bus is on the J13 connector.&lt;br /&gt;
&lt;br /&gt;
[[Image:APF27DEV-J13-localisation.png]]&lt;br /&gt;
[[Image:APF27DEV-J13-PINOUT.png‎]]&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;J13 Pinout&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! ''' J13 - Pins ''' || ''' Functionnalities '''&lt;br /&gt;
|----------------&lt;br /&gt;
| 1 || +3V3&lt;br /&gt;
|----------------&lt;br /&gt;
| 2 || CAN H&lt;br /&gt;
|----------------&lt;br /&gt;
| 3 ||  CAN L&lt;br /&gt;
|----------------&lt;br /&gt;
| 4 || GND&lt;br /&gt;
|----------------&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Check that the J11 is closed on your APF27-Dev board, it will add the end line 120ohm resistor of the CAN bus.&lt;br /&gt;
&lt;br /&gt;
* Add the Microchip kit MCP2515DM-PCTL ( Expander side ) to the CAN bus:&lt;br /&gt;
[[Image:MCP2515DM-PCTL-J3-localisation.png]]&lt;br /&gt;
[[Image:MCP2515DM-PCTL-J3-PINOUT.png‎]]&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;J3 Pinout&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! ''' J3 - Pins ''' || ''' Functionnalities '''&lt;br /&gt;
|----------------&lt;br /&gt;
| 1 || nc&lt;br /&gt;
|----------------&lt;br /&gt;
| 2 || GND&lt;br /&gt;
|----------------&lt;br /&gt;
| 3 ||  CAN L&lt;br /&gt;
|----------------&lt;br /&gt;
| 4 || CAN H&lt;br /&gt;
|----------------&lt;br /&gt;
| 5 || GND&lt;br /&gt;
|----------------&lt;br /&gt;
| 6 || nc&lt;br /&gt;
|----------------&lt;br /&gt;
| 7 ||  nc&lt;br /&gt;
|----------------&lt;br /&gt;
| 8 || +5V&lt;br /&gt;
|----------------&lt;br /&gt;
| 9 || nc&lt;br /&gt;
|----------------&lt;br /&gt;
| 10 || nc&lt;br /&gt;
|----------------&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Check that the JP3 is closed on the Microchip demo board, it will add the end line 120ohm resistor of the CAN bus.&lt;br /&gt;
&lt;br /&gt;
* Connect CAN L, CAN H and GND between your APF27-Dev and the MCP2515DM-PCTL&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;J13 Pinout&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! ''' APF27-Dev J13 pins ''' || ''' MCP2515DM-PCTL J3 pins ''' || ''' Functionnalities '''&lt;br /&gt;
|----------------&lt;br /&gt;
| 2 || 4 || CAN H&lt;br /&gt;
|----------------&lt;br /&gt;
| 3 || 3 ||  CAN L&lt;br /&gt;
|----------------&lt;br /&gt;
| 4 || 2 || GND&lt;br /&gt;
|----------------&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
Once your pins are correctly connected, launch your APF27-Dev Board.&lt;br /&gt;
With the demonstration program, you can:&lt;br /&gt;
* Listen on the bus&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mcp25020_ctrl listen&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
* Blink the D6 Led on the Microchip demo board&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mcp25020_ctrl led-blink [interval]&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Interval is 10 to 10000 (The blinking interval in ms)&lt;br /&gt;
* Turn ON or OFF the D6 Led on the Microchip demo board&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mcp25020_ctrl led-state [ON|OFF]&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Select ON or OFF to changing the led state.&lt;br /&gt;
* Get the state of the SW2 switch on the Microchip demo board (released or pushed)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mcp25020_ctrl sw2-get&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
* Get the status of MCP25020 configuration registers&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mcp25020_ctrl config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See the MCP25020 datasheet for more informations&lt;br /&gt;
&lt;br /&gt;
==Source code==&lt;br /&gt;
The program source of the demo is viewable in your ARMadeus repository target/demos/mcp25020_ctrl/mcp25020_ctrl.c&lt;br /&gt;
&lt;br /&gt;
==Examples program==&lt;br /&gt;
To create a program with CAN protocol in C/C++, Python, ... is similar to programming a TCP/IP protocol application. Both implement the UNIX socket. You can found some examples in the directory &amp;quot;test&amp;quot; of the socketcan sources, you can found them on:&lt;br /&gt;
* http://svn.berlios.de/wsvn/socketcan (trunk-&amp;gt;test)&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://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;amp;nodeId=1406&amp;amp;dDocName=en024094 (MCP2515 CAN PICtail Demo Board)&lt;br /&gt;
* http://ww1.microchip.com/downloads/en/DeviceDoc/21664D.pdf (MCP25020 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 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>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=User:KevinJ&amp;diff=9694</id>
		<title>User:KevinJ</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=User:KevinJ&amp;diff=9694"/>
				<updated>2011-05-19T22:24:19Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: New page: == Présentation ==   Je suis Kévin JOLY, stagiaire chez ARMadeus Systems pour finaliser mon DUT à l'IUT de Belfort-Montbéliard. Mes sujets de stages sont:  -Validation de la communicat...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Je suis Kévin JOLY, stagiaire chez ARMadeus Systems pour finaliser mon DUT à l'IUT de Belfort-Montbéliard. Mes sujets de stages sont: &lt;br /&gt;
-Validation de la communication sur bus CAN.&lt;br /&gt;
-Intégration des modules HMS Anybus sur une APF51.&lt;br /&gt;
&lt;br /&gt;
Sur cette page, quelques petits articles des différents travaux effectué avec une carte APF&lt;br /&gt;
&lt;br /&gt;
== Communication with the CAN Bus of a car ==&lt;br /&gt;
&lt;br /&gt;
 {{Under_Construction}}&lt;br /&gt;
&lt;br /&gt;
{{Warning| The operations of this section can be dangerous for your vehicle. Neither I nor ARMadeus Systems are responsible of your operations/modifications or whatever on your vehicle }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Presentation of CAN buses in car ==&lt;br /&gt;
&lt;br /&gt;
There is not one only CAN bus in your car. For example there is the confort bus, inter-system bus, etc ... (depending of your vehicle). If you want to retreive some specific informations with your APF, it is possible but the CAN identifier code is not given by any car constructor. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Connection on inter-system bus ==&lt;br /&gt;
&lt;br /&gt;
For our test, we have scanned the inter-system bus with an APF27. The CAN bus wires of this bus was under the steering wheel. You can see some twisted wires(depending of your vehicle), CAN-Low and CAN-High are twisted all.&lt;br /&gt;
&lt;br /&gt;
{{Warning| Do not shortcut the pins CAN-High and CAN-Low! I repeat that we are not responsible of the damage made on your car! }}&lt;br /&gt;
&lt;br /&gt;
[[Image:Can_connector_307.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
Then, connect the bus on the APF CAN connector. You should connect only the two middle pins (See this page, section &amp;quot;Assembly&amp;quot; for further information: [http://www.armadeus.com/wiki/index.php?title=CAN_bus_demo_MCP25020#Assembly CAN bus demo MCP25020].&lt;br /&gt;
&lt;br /&gt;
[[Image:Test_can_307_apf27.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
The black wire on the CAN connector of this picture is not connected.&lt;br /&gt;
&lt;br /&gt;
== Application ==&lt;br /&gt;
&lt;br /&gt;
I have used an implementation of the socket with can interface to retreive the messages on the bus. For example we can push on the accelerator pedal and check wich bits are incremented.&lt;br /&gt;
&lt;br /&gt;
[[Image:Can_307_application.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
This is a simple application coded in C language. This application use the socket implementation. (use the candump tools of the socketCAN utils or check the code in your armadeus distribution in ''/target/demos/mcp25020_ctrl/'' for an example).&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=File:Can_307_application.png&amp;diff=9693</id>
		<title>File:Can 307 application.png</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=File:Can_307_application.png&amp;diff=9693"/>
				<updated>2011-05-19T22:18:31Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: Application for receive the CAN messages on APF27&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Application for receive the CAN messages on APF27&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=File:Test_can_307_apf27.jpg&amp;diff=9692</id>
		<title>File:Test can 307 apf27.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=File:Test_can_307_apf27.jpg&amp;diff=9692"/>
				<updated>2011-05-19T22:11:14Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: Test can at IUT Belfort-Montbéliard with a Peugeot 307&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Test can at IUT Belfort-Montbéliard with a Peugeot 307&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=File:Can_connector_307.jpg&amp;diff=9691</id>
		<title>File:Can connector 307.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=File:Can_connector_307.jpg&amp;diff=9691"/>
				<updated>2011-05-19T21:43:57Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: test can on 307 at IUT Belfort-Montbéliard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;test can on 307 at IUT Belfort-Montbéliard&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=POD_Tutorial&amp;diff=9675</id>
		<title>POD Tutorial</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=POD_Tutorial&amp;diff=9675"/>
				<updated>2011-05-16T12:52:18Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Simulation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
In this first tutorial, we will learn how to use POD with a simple example project for an [[APF9328]] board.&lt;br /&gt;
The project is described in figure 1. It is composed of 3 virtual components:&lt;br /&gt;
*  '''blink''' : blink is the instance name of a led (virtual component) that can «blink» by simply writing a value in a register.&lt;br /&gt;
*  '''push''' : push is the instance name of a button (virtual component) that can generate an interrupt when pushed/released. The state of the button can be read in a register.&lt;br /&gt;
*  '''i2c''' : i2c is the instance name of the i2cocore virtual component (from OpenCores.org). This component is an i2c bus controller.&lt;br /&gt;
&lt;br /&gt;
[[image:exemple-i2cledbutton.png|center|frame|400px|'''figure 1''' - ''Project example for tutorial'']]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
See [[POD installation guide]] to learn how to install it.&lt;br /&gt;
&lt;br /&gt;
== POD ==&lt;br /&gt;
&lt;br /&gt;
POD can be started by writing &amp;quot;pod&amp;quot; in the pod/bin/ directory. If you are under Windows ''python'' has to be written before:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ python pod/bin/pod&lt;br /&gt;
POD&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't want to write the entire path each time, you can set your $PATH variable with the path of POD:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:&amp;quot;path_to_pod/pod/bin&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Playing with POD ===&lt;br /&gt;
&lt;br /&gt;
POD is a console program composed of several environments described in figure 2.&lt;br /&gt;
&lt;br /&gt;
[[image:podenvironment.png|center|frame|250px|'''figure 2''' - ''POD console architecture'']]&lt;br /&gt;
&lt;br /&gt;
To enter in an environment, simply write its name from the parent environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD&amp;gt; project&lt;br /&gt;
POD.project&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a complete list of the available commands type ''help''&lt;br /&gt;
&amp;lt;pre class=&amp;quot;pod&amp;quot;&amp;gt;&lt;br /&gt;
POD.project&amp;gt; help&lt;br /&gt;
&lt;br /&gt;
Documented commands (type help &amp;lt;topic&amp;gt;):&lt;br /&gt;
========================================&lt;br /&gt;
EOF             create         help            listplatforms   setaddr   &lt;br /&gt;
addbusclock     delcomponent   history         load            setgeneric&lt;br /&gt;
addinstance    delconnection  info            ls              shell     &lt;br /&gt;
autoconnectbus  description    intercon        printxml        simulation&lt;br /&gt;
check           driver         listcomponents  quit            synthesis &lt;br /&gt;
closeproject    eof            listinstances   savehistory     top       &lt;br /&gt;
connectbus      exit           listinterfaces  saveproject   &lt;br /&gt;
connectpin      getmapping     listmasters     selectplatform&lt;br /&gt;
&lt;br /&gt;
POD.project&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A short description is although available for each command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;pod&amp;quot;&amp;gt;&lt;br /&gt;
POD.project&amp;gt; help listcomponents&lt;br /&gt;
 listcomponents [componenttype]&lt;br /&gt;
        List components available in the library&lt;br /&gt;
        &lt;br /&gt;
POD.project&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Command completion and argument completion can be done by using the &amp;lt;TAB&amp;gt; key :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project&amp;gt; help list&amp;lt;TAB&amp;gt;&lt;br /&gt;
listcomponents  listinterfaces  listplatforms   &lt;br /&gt;
listinstances   listmasters  &lt;br /&gt;
POD.project&amp;gt; help list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
System commands can be used with «!» before:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project&amp;gt; !echo &amp;quot;POD is really useful&amp;quot;&lt;br /&gt;
POD is really useful&lt;br /&gt;
POD.project&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Project creation ===&lt;br /&gt;
&lt;br /&gt;
[[image:exemple-empty.png|center|frame|400px|'''figure 3''' - ''Empty i2cledbutton-tutorial project'']]&lt;br /&gt;
&lt;br /&gt;
To create a project, enter the ''create'' command in the ''project'' environment:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project&amp;gt; create i2cledbutton-tutorial&lt;br /&gt;
Project i2cledbutton-tutorial created&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ''i2cledbutton-tutorial'' project is now created, you can save it &lt;br /&gt;
when you want, by typing ''saveproject''.&lt;br /&gt;
&lt;br /&gt;
The target platform has to be selected by means of the ''selectplatform'' command :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; selectplatform standard.apf9328&lt;br /&gt;
Component platform added as apf9328&lt;br /&gt;
Component imx9328_wb16_wrapper added as imx9328_wb16_wrapper00&lt;br /&gt;
Component rstgen_syscon added as rstgen_syscon00&lt;br /&gt;
Component irq_mngr added as irq_mngr00&lt;br /&gt;
setting base address 0x0 for  irq_mngr00.swb16&lt;br /&gt;
&lt;br /&gt;
Platform apf9328 selected&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By selecting this platform, several components will be automaticaly added by POD:&lt;br /&gt;
* '''imx9328_wb16_wrapper''': this component is used to convert the i.MX processor bus to the Wishbone (16bits data) bus.&lt;br /&gt;
* '''rstgen_syscon''' : this component manages the clock and the reset for the design.&lt;br /&gt;
* '''irq_mngr''' : this is a Wishbone16 slave which manages the interrupts generated by the other components and which propagates them to the processor.&lt;br /&gt;
&lt;br /&gt;
[[image:exemple-platform.png|center|frame|400px|'''figure 4''' - ''Platform loaded with their default components'']]&lt;br /&gt;
&lt;br /&gt;
=== Adding components ===&lt;br /&gt;
&lt;br /&gt;
Components are organized by category in the library, to list the categories, use ''listcomponents'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; listcomponents&lt;br /&gt;
test  components  wrappers  syscons&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And to list the components under a category use ''listcomponents'' again with the category name in parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; listcomponents components&lt;br /&gt;
i2cocore  c38a_control  ledsensor  led  simplegpio  uart16550  irq_mngr  button&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Three components will be loaded with the command ''addinstances'':&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; help addinstance&lt;br /&gt;
 addinstance &amp;lt;componenttype&amp;gt;.&amp;lt;componentname&amp;gt;.[componentversion] [newinstancename]&lt;br /&gt;
        Add component in project&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second parameter is used to give the instance name of the component in the project.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; addinstance components.button push&lt;br /&gt;
Component button added as push&lt;br /&gt;
&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; addinstance components.led.wb16 blink&lt;br /&gt;
Component led added as blink&lt;br /&gt;
&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; addinstance components.i2cocore.wb16 i2c&lt;br /&gt;
Component i2cocore added as i2c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: some components like the led may have several versions depending on the Wishbone bus size for example.&lt;br /&gt;
&lt;br /&gt;
[[image:exemple-components.png|center|frame|400px|'''figure 4''' - ''Components loaded'']]&lt;br /&gt;
&lt;br /&gt;
=== Internal pin connections ===&lt;br /&gt;
&lt;br /&gt;
''push'' and ''i2c'' components have output pins to generate interrupts. These pins have&lt;br /&gt;
to be connected to the interrupt manager &amp;quot;irq_mngr00&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:exemple-intconnection.png|center|frame|400px|'''figure 5''' - ''Internal interrupts connections'']]&lt;br /&gt;
&lt;br /&gt;
A complete description of an instance in the project can be displayed with the ''info'' command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; info i2c&lt;br /&gt;
Component name :i2c&lt;br /&gt;
Instance  name :i2cocore&lt;br /&gt;
description : A simple button ip&lt;br /&gt;
-&amp;gt;Generics&lt;br /&gt;
             id : 1&lt;br /&gt;
        wb_size : 16&lt;br /&gt;
-&amp;gt;Interfaces&lt;br /&gt;
irq             :&lt;br /&gt;
     inta_o          s1&lt;br /&gt;
candr           :&lt;br /&gt;
     rst_i           s1&lt;br /&gt;
     clk_i           s1&lt;br /&gt;
i2c             :&lt;br /&gt;
     scl             s1&lt;br /&gt;
     sda             s1&lt;br /&gt;
swb16            Base address:0x0&lt;br /&gt;
     adr_i           s4&lt;br /&gt;
     dat_i           s16&lt;br /&gt;
     dat_o           s16&lt;br /&gt;
     we_i            s1&lt;br /&gt;
     stb_i           s1&lt;br /&gt;
     ack_o           s1&lt;br /&gt;
     cyc_i           s1&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command gives the interfaces, the ports and the size of the ports (s1, s16, ...). We want to &lt;br /&gt;
connect the interrupt port pin number 0, named '''inta_o''' and part of the '''irq''' &lt;br /&gt;
interface, to the ''irq_mngr00''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; info irq_mngr00&lt;br /&gt;
Component name :irq_mngr00&lt;br /&gt;
Instance  name :irq_mngr&lt;br /&gt;
description : Manage interruptions.&lt;br /&gt;
-&amp;gt;Generics&lt;br /&gt;
             id : 1&lt;br /&gt;
      irq_level : '1'&lt;br /&gt;
      irq_count : 1&lt;br /&gt;
-&amp;gt;Interfaces&lt;br /&gt;
candr           :&lt;br /&gt;
     gls_clk         s1&lt;br /&gt;
     gls_reset       s1&lt;br /&gt;
swb16            Base address:0x0&lt;br /&gt;
     wbs_s1_address  s2&lt;br /&gt;
     wbs_s1_readdata s16&lt;br /&gt;
     wbs_s1_writedata s16&lt;br /&gt;
     wbs_s1_ack      s1&lt;br /&gt;
     wbs_s1_strobe   s1&lt;br /&gt;
     wbs_s1_cycle    s1&lt;br /&gt;
     wbs_s1_write    s1&lt;br /&gt;
irq             :&lt;br /&gt;
     irqport         s16&lt;br /&gt;
ext_irq         :&lt;br /&gt;
     gls_irq         s1&lt;br /&gt;
        pin 0: -&amp;gt; apf9328.fpga.TIM1.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The targeted port in the irq_mngr is '''irqport''' part of the '''irq''' interface. To establish the connection, the ''connectpin'' command will be used:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; connectpin irq_mngr00.irq.irqport.0 i2c.irq.inta_o.0&lt;br /&gt;
pin connected&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same thing for the push button :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; connectpin irq_mngr00.irq.irqport.1 push.int_button.irq.0&lt;br /&gt;
pin connected&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ''info'' command can be used to verify that the connection is correctly performed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; info irq_mngr00&lt;br /&gt;
Component name :irq_mngr00&lt;br /&gt;
Instance  name :irq_mngr&lt;br /&gt;
description : Manage interruptions.&lt;br /&gt;
-&amp;gt;Generics&lt;br /&gt;
             id : 1&lt;br /&gt;
      irq_level : '1'&lt;br /&gt;
      irq_count : 2&lt;br /&gt;
-&amp;gt;Interfaces&lt;br /&gt;
candr           :&lt;br /&gt;
     gls_clk         s1&lt;br /&gt;
     gls_reset       s1&lt;br /&gt;
swb16            Base address:0x0&lt;br /&gt;
     wbs_s1_address  s2&lt;br /&gt;
     wbs_s1_readdata s16&lt;br /&gt;
     wbs_s1_writedata s16&lt;br /&gt;
     wbs_s1_ack      s1&lt;br /&gt;
     wbs_s1_strobe   s1&lt;br /&gt;
     wbs_s1_cycle    s1&lt;br /&gt;
     wbs_s1_write    s1&lt;br /&gt;
irq             :&lt;br /&gt;
     irqport         s16&lt;br /&gt;
        pin 0: -&amp;gt; i2c.irq.inta_o.0&lt;br /&gt;
        pin 1: -&amp;gt; push.int_button.irq.0&lt;br /&gt;
ext_irq         :&lt;br /&gt;
     gls_irq         s1&lt;br /&gt;
        pin 0: -&amp;gt; apf9328.fpga.TIM1.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== External pin connections ===&lt;br /&gt;
&lt;br /&gt;
Connecting an external pin is done the same way as for an internal pin by giving the name of the platform in place of the instance name. In the '''apf9328''' platform, the pin name &lt;br /&gt;
can be found in FPGA schematic [http://www.armadeus.com/_downloads/apf9328/hardware/apf_schema.pdf] (page 13). &lt;br /&gt;
The name of the interface is '''fpga''' for the apf9328. In this example we will connect the button, the led and the i2c to the APF9328DevFull connector X7 (figure 6). &lt;br /&gt;
&lt;br /&gt;
[[image:devfullX7.png|center|frame|400px|'''figure 5''' - ''X7 connector'']]&lt;br /&gt;
&lt;br /&gt;
We just have to connect the pins as following :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; connectpin apf9328.fpga.IO_L01N_0 push.int_button.button.0&lt;br /&gt;
pin connected&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; connectpin i2c.i2c.sda apf9328.fpga.IO_L32N_0&lt;br /&gt;
pin connected&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; connectpin i2c.i2c.scl apf9328.fpga.IO_L01P_0&lt;br /&gt;
pin connected&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; connectpin blink.int_led.led.0 apf9328.fpga.IO_L32P_0&lt;br /&gt;
pin connected&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:exemple-extconnection.png|center|frame|400px|'''figure 6''' - ''external connections'']]&lt;br /&gt;
&lt;br /&gt;
=== Bus and clock connections ===&lt;br /&gt;
&lt;br /&gt;
* '''Bus'''&lt;br /&gt;
&lt;br /&gt;
[[image:exemple-busconnection.png|center|frame|400px|'''figure 7''' - ''Wishbone bus connections'']]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To connect a bus, the master bus interface is used as first argument of the ''connectbus'' command, the second argument being the slave bus interface:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; connectbus imx9328_wb16_wrapper00.mwb16 blink.swb16&lt;br /&gt;
Bus connected&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; connectbus imx9328_wb16_wrapper00.mwb16 push.swb16&lt;br /&gt;
Bus connected&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; connectbus imx9328_wb16_wrapper00.mwb16 i2c.swb16&lt;br /&gt;
Bus connected&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''clock'''&lt;br /&gt;
&lt;br /&gt;
[[image:exemple-clockconnection.png|center|frame|400px|'''figure 8''' - ''Syscon connection'']]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The bus interconection (Intercon) need to be synchronized with a clock and reset generator. This can be done by means of the ''addbusclock'' command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; addbusclock rstgen_syscon00.candr imx9328_wb16_wrapper00.mwb16&lt;br /&gt;
Connected&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''autoconnect'''&lt;br /&gt;
&lt;br /&gt;
Bus and clock connections can be automaticaly performed with the ''autoconnect'' command. This command works only for &amp;quot;classical&amp;quot; architectures and with recognized buses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; autoconnectbus&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Intercon generation ===&lt;br /&gt;
&lt;br /&gt;
Once the connections done, the Intercon component has to be generated. The Intercon is a component&lt;br /&gt;
responsible for decoding the addresses and for routing the Wishbone bus signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; intercon imx9328_wb16_wrapper00.mwb16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:exemple-intercon.png|center|frame|400px|'''figure 8''' - ''Intercon'']]&lt;br /&gt;
&lt;br /&gt;
=== Top generation ===&lt;br /&gt;
&lt;br /&gt;
[[image:exemple-top.png|center|frame|400px|'''figure 9''' - ''Top'']]&lt;br /&gt;
&lt;br /&gt;
The Top component is the component responsible for connecting the non Wishbone signals in the FPGA. The Top can be generated with the ''top'' command&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; top&lt;br /&gt;
&lt;br /&gt;
Top generated with name : top_i2cledbutton-tutorial.vhd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Synthesis ==&lt;br /&gt;
&lt;br /&gt;
In the '''apf9328''' platform, the FPGA is a Spartan3 from Xilinx. This means that the synthesis of the project can only be done with ISE. Fortunately, Xilinx provides the ISE &lt;br /&gt;
Webpack freely on its website [http://www.xilinx.com/ise/logic_design_prod/webpack.htm].&lt;br /&gt;
&lt;br /&gt;
POD has to generate a project that ISE can understand. This can be accomplished from the synthesis environment :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial&amp;gt; synthesis&lt;br /&gt;
POD.project.synthesis&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the tool used for the synthesis has to be specified with the ''selecttoolchain'' command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project.synthesis&amp;gt; selecttoolchain ise&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that we can generate an ISE project with the ''generateproject'' command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton-tutorial.synthesis&amp;gt; selecttoolchain ise&lt;br /&gt;
POD.project:i2cledbutton-tutorial.synthesis&amp;gt; generateproject&lt;br /&gt;
Make directory for imx9328_wb16_wrapper&lt;br /&gt;
Make directory for rstgen_syscon&lt;br /&gt;
Make directory for irq_mngr&lt;br /&gt;
Make directory for led&lt;br /&gt;
Make directory for button&lt;br /&gt;
Make directory for i2cocore&lt;br /&gt;
Make directory for imx9328_wb16_wrapper00_mwb16&lt;br /&gt;
&lt;br /&gt;
Constraint file generated with name :~/pod/tests/i2cledbutton-tutorial/synthesis/i2cledbutton-tutorial.ucf&lt;br /&gt;
&lt;br /&gt;
TCL script generated with name : i2cledbutton-tutorial.tcl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, POD generates although a TCL script that can be executed by ISE. This script eases the synthesis process. &lt;br /&gt;
&lt;br /&gt;
[[image:exemple-ise.png|center|frame|400px|'''figure 10''' - ''Bitstream generation with ISE Webpack'']]&lt;br /&gt;
&lt;br /&gt;
In the Tcl tab ('''1'''), change the default directory to the synthesis directory ('''2'''), find the tcl script you want to execute ('''3''', under Windows type ''dir'' instead of ''ls'') and start it with the ''source'' command ('''4''').&lt;br /&gt;
&lt;br /&gt;
The resulting bitstream (binary FPGA synthetized code) ''top_i2cledbutton.bit'' can be found in the ''i2cledbutton_tutorial/objs'' directory.&lt;br /&gt;
&lt;br /&gt;
== Simulation ==&lt;br /&gt;
&lt;br /&gt;
If a simulation is required, POD can generate a template for the whole project. To do this, enter in the simulation environment :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton_tutorial&amp;gt; simulation&lt;br /&gt;
POD.project:i2cledbutton_tutorial.simulation&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To generate the testbench and the makefile use the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton_tutorial.simulation&amp;gt; generateproject&lt;br /&gt;
&lt;br /&gt;
Testbench with name : /home/fabien/projectpod/software/pod/tests/i2cledbutton_tutorial/simulation/top_i2cledbutton_tutorial_tb.vhd Done&lt;br /&gt;
&lt;br /&gt;
Makefile generated with name : /home/fabien/projectpod/software/pod/tests/i2cledbutton_tutorial/simulation/Makefile Done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, you just have to modify the ''top_i2cledbutton_tutorial_tb.vhd'' file to add your own tests &lt;br /&gt;
under the ''stimulis'' process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
stimulis : process&lt;br /&gt;
begin&lt;br /&gt;
-- write stimulis here&lt;br /&gt;
wait for 10 us;&lt;br /&gt;
assert false report &amp;quot;End of test&amp;quot; severity error;&lt;br /&gt;
end process stimulis;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can then start the simulation with ''make ghdl-simu'' and launch ''make ghdl-view'' to &lt;br /&gt;
view the generated chronograms with gtkwave.&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
&lt;br /&gt;
Numbers of components have a driver template for different operating systems. POD can&lt;br /&gt;
fill these templates with the informations contained in the project.&lt;br /&gt;
&lt;br /&gt;
From the driver environment,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton_tutorial&amp;gt; driver&lt;br /&gt;
POD.project:i2cledbutton_tutorial.driver&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
choose the targeted platform:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton_tutorial.driver&amp;gt; selecttoolchain armadeus&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And generate the driver project : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton_tutorial.driver&amp;gt; generateproject&lt;br /&gt;
No driver for imx9328_wb16_wrapper&lt;br /&gt;
No driver for rstgen_syscon&lt;br /&gt;
Create directory for irq_mngr driver&lt;br /&gt;
Create directory for button driver&lt;br /&gt;
Create directory for led driver&lt;br /&gt;
Create directory for i2cocore driver&lt;br /&gt;
No driver for imx9328_wb16_wrapper00_mwb16&lt;br /&gt;
Copy and fill template for irq_mngr&lt;br /&gt;
Copy and fill template for button&lt;br /&gt;
Copy and fill template for led&lt;br /&gt;
Copy and fill template for i2cocore&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Drivers are generated and can be found in the ''i2cledbutton_tutorial/drivers/'' directory. &lt;br /&gt;
POD can copy this drivers to the right place in the software development tree. Select the path with ''selectprojecttree'' then copy the files with ''copydrivers'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:i2cledbutton_tutorial.driver&amp;gt; selectprojecttree ~/armadeus/target/linux/modules/fpga/POD&lt;br /&gt;
&lt;br /&gt;
POD.project:i2cledbutton_tutorial.driver&amp;gt; copydrivers&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compile the drivers, go to your ''armadeus/'' directory then type ''make linux26-menuconfig''. The drivers generated by POD are located in ''Device Drivers - Armadeus specific drivers - FPGA drivers '' (see figure 11).&lt;br /&gt;
&lt;br /&gt;
[[image:exemple-linuxmenuconfig.png|center|frame|400px|'''figure 11''' - ''Linux menuconfig'']]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux-menuconfig&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:POD]]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=IR_HID_USB_Remote&amp;diff=9661</id>
		<title>IR HID USB Remote</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=IR_HID_USB_Remote&amp;diff=9661"/>
				<updated>2011-05-11T21:17:22Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explain how to use Infrared USB HID Remote on APF board. Some (but not all) are supported by the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Driver installation==&lt;br /&gt;
&lt;br /&gt;
We have to know the model of your USB device under Linux. Connect it on a PC with Linux running, open a console and type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ dmesg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should obtain something like that :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
[ 8893.213869] generic-usb 0003:062A:0000.0005: input,hidraw0: USB HID v1.10 Mouse [HID 062a:0000] on usb-0000:00:1d.0-2/input0&lt;br /&gt;
[ 9739.616076] usb 3-2: new low speed USB device using uhci_hcd and address 5&lt;br /&gt;
[ 9739.942974] zydacron 0003:13EC:0006.0006: fixing up zydacron remote control report descriptor&lt;br /&gt;
[ 9739.978243] input: HID 13ec:0006 as /devices/pci0000:00/0000:00:1d.1/usb3/3-2/3-2:1.0/input/input16&lt;br /&gt;
[ 9739.979060] zydacron 0003:13EC:0006.0006: input,hiddev0,hidraw1: USB HID v1.10 Keyboard [HID 13ec:0006] on usb-0000:00:1d.1-2/input0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last line give the model and the identifier of the product : &amp;quot;Zydacron&amp;quot;&lt;br /&gt;
If you don't see anything about the model of your HID device, copy/paste the identifier in google. The identifier must be something like that : 13ec:0006&lt;br /&gt;
It always be composed of 4 characters, &amp;quot;:&amp;quot;, and 4 characters again.&lt;br /&gt;
&lt;br /&gt;
Then, configure your Linux configuration in your armadeus directory&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;
    [*] HID Devices  ---&amp;gt;&lt;br /&gt;
      Special HID drivers  ---&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then, search your driver (Zydacron in our case).&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;M&amp;gt; Zydacron remote control support &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reflash kernel and rootfs.&lt;br /&gt;
&lt;br /&gt;
==Load the driver==&lt;br /&gt;
&lt;br /&gt;
You must know the module name of the driver.&lt;br /&gt;
For Zydacron it is &amp;quot;hid_zydacron&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you don't know the name of your Linux driver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
  # ls /lib/modules/$(uname -r)/kernel/drivers/hid/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| $(uname -r) will be replaced with your kernel version. }}&lt;br /&gt;
&lt;br /&gt;
You should see some or one file(s) with the &amp;quot;.ko&amp;quot; extension, like your_hid_driver.ko (hid_zydacron.ko in our case).&lt;br /&gt;
&lt;br /&gt;
then :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
  #modprobe your_hid_driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in our case:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
  # modprobe hid_zydacron&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&lt;br /&gt;
Plug the usb receiver of your remote on APF board and type&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
  # modprobe dmsg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you read the model name of your device and something like &amp;quot;eventX&amp;quot; where X is the event number, the Linux input is ready. &lt;br /&gt;
&lt;br /&gt;
Check if the event is correctly set in the input directory:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
  # ls /dev/input/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should read the event of your device.&lt;br /&gt;
&lt;br /&gt;
Check if the communication is set (replace X by your event number, usualy 0 if no hid device other than your remote has been plugged)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
  # od -x /dev/input/eventX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Push a button on your remote. You should see some incomprehensible characters on the screen, don't worry it sounds good!&lt;br /&gt;
&lt;br /&gt;
==Application example==&lt;br /&gt;
&lt;br /&gt;
The USB HID remote device is configured in Linux like a keyboard.&lt;br /&gt;
&lt;br /&gt;
Here a little example of application in langage C : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/input.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/* Replace X by the number of your event */&lt;br /&gt;
char input[] = &amp;quot;/dev/input/eventX&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    int fd;&lt;br /&gt;
    struct input_event remote_event;&lt;br /&gt;
    fd = open(input, O_RDONLY); /* Open the event file */&lt;br /&gt;
&lt;br /&gt;
    if(fd == -1) {&lt;br /&gt;
        printf(&amp;quot;Can not open the input device!\n&amp;quot;);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        while (1) {&lt;br /&gt;
            read(fd, &amp;amp;remote_event, sizeof(struct input_event)); /* read the last event */&lt;br /&gt;
            if(remote_event.type == EV_KEY &amp;amp;&amp;amp; remote_event.value == 1) { /* Check if a key was pressed */&lt;br /&gt;
                if(remote_event.code==103) { /* Compare with key up code */&lt;br /&gt;
                    printf(&amp;quot;Key up was pressed\n&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
                else if(remote_event.code==108) { /* Compare with key down code */&lt;br /&gt;
                    printf(&amp;quot;Key down was pressed\n&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
		/* ... */&lt;br /&gt;
                else {&lt;br /&gt;
                   printf(&amp;quot;Unknown button with code %d was pressed\n&amp;quot;, remote_event.code); /* Print code */&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
Getting started with uinput [http://thiemonge.org/getting-started-with-uinput]&lt;br /&gt;
&lt;br /&gt;
A little example of code in C [http://thiemonge.org/getting-started-with-uinput]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=IR_HID_USB_Remote&amp;diff=9660</id>
		<title>IR HID USB Remote</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=IR_HID_USB_Remote&amp;diff=9660"/>
				<updated>2011-05-11T21:15:50Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: New page: This page explain how to use Infrared USB HID Remote on APF board. Some (but not all) are supported by the Linux kernel.   ==Driver installation==  We have to know the model of your USB de...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explain how to use Infrared USB HID Remote on APF board. Some (but not all) are supported by the Linux kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Driver installation==&lt;br /&gt;
&lt;br /&gt;
We have to know the model of your USB device under Linux. Connect it on a PC with Linux running, open a console and type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ dmesg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should obtain something like that :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
[ 8893.213869] generic-usb 0003:062A:0000.0005: input,hidraw0: USB HID v1.10 Mouse [HID 062a:0000] on usb-0000:00:1d.0-2/input0&lt;br /&gt;
[ 9739.616076] usb 3-2: new low speed USB device using uhci_hcd and address 5&lt;br /&gt;
[ 9739.942974] zydacron 0003:13EC:0006.0006: fixing up zydacron remote control report descriptor&lt;br /&gt;
[ 9739.978243] input: HID 13ec:0006 as /devices/pci0000:00/0000:00:1d.1/usb3/3-2/3-2:1.0/input/input16&lt;br /&gt;
[ 9739.979060] zydacron 0003:13EC:0006.0006: input,hiddev0,hidraw1: USB HID v1.10 Keyboard [HID 13ec:0006] on usb-0000:00:1d.1-2/input0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last line give the model and the identifier of the product : &amp;quot;Zydacron&amp;quot;&lt;br /&gt;
If you don't see anything about the model of your HID device, copy/paste the identifier in google. The identifier must be something like that : 13ec:0006&lt;br /&gt;
It always be composed of 4 characters, &amp;quot;:&amp;quot;, and 4 characters again.&lt;br /&gt;
&lt;br /&gt;
Then, configure your Linux configuration in your armadeus directory&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;
    [*] HID Devices  ---&amp;gt;&lt;br /&gt;
      Special HID drivers  ---&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then, search your driver (Zydacron in our case).&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;M&amp;gt; Zydacron remote control support &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reflash kernel and rootfs.&lt;br /&gt;
&lt;br /&gt;
==Load the driver==&lt;br /&gt;
&lt;br /&gt;
You must know the module name of the driver.&lt;br /&gt;
For Zydacron it is &amp;quot;hid_zydacron&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you don't know the name of your Linux driver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
  # ls /lib/modules/$(uname -r)/kernel/drivers/hid/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| $(uname -r) will be replaced with your kernel version. }}&lt;br /&gt;
&lt;br /&gt;
You should see some or one file(s) with the &amp;quot;.ko&amp;quot; extension, like your_hid_driver.ko (hid_zydacron.ko in our case).&lt;br /&gt;
&lt;br /&gt;
then :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
  #modprobe your_hid_driver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in our case:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
  # modprobe hid_zydacron&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&lt;br /&gt;
Plug the usb receiver of your remote on APF board and type&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
  # modprobe dmsg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you read the model name of your device and something like &amp;quot;eventX&amp;quot; where X is the event number, the Linux input is ready. &lt;br /&gt;
&lt;br /&gt;
Check if the event is correctly set in the input directory:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
  # ls /dev/input/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should read the event of your device.&lt;br /&gt;
&lt;br /&gt;
Check if the communication is set (replace X by your event number, usualy 0 if no hid device other than your remote has been plugged)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
  # od -x /dev/input/eventX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Push a button on your remote. You should see some incomprehensible characters on the screen, don't worry it sounds good!&lt;br /&gt;
&lt;br /&gt;
==Application example==&lt;br /&gt;
&lt;br /&gt;
The USB HID remote device is configured in Linux like a keyboard.&lt;br /&gt;
&lt;br /&gt;
Here a little example of application in langage C : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/input.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/* Replace X by the number of your event */&lt;br /&gt;
char input[] = &amp;quot;/dev/input/eventX&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    int fd;&lt;br /&gt;
    struct input_event remote_event;&lt;br /&gt;
    fd = open(input, O_RDONLY); /* Open the event file */&lt;br /&gt;
&lt;br /&gt;
    if(fd == -1) {&lt;br /&gt;
        printf(&amp;quot;Can not open the input device!\n&amp;quot;);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        while (1) {&lt;br /&gt;
            read(fd, &amp;amp;remote_event, sizeof(struct input_event)); /* read the last event */&lt;br /&gt;
            if(remote_event.type == EV_KEY &amp;amp;&amp;amp; remote_event.value == 1) { /* Check if a key was pressed */&lt;br /&gt;
                if(remote_event.code==103) { /* Compare with key up code */&lt;br /&gt;
                    printf(&amp;quot;Key up was pressed\n&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
                else if(remote_event.code==108) { /* Compare with key down code */&lt;br /&gt;
                    printf(&amp;quot;Key down was pressed\n&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
		/* ... */&lt;br /&gt;
                else {&lt;br /&gt;
                   printf(&amp;quot;Unknown button with code %d was pressed\n&amp;quot;, remote_event.code); /* Print code */&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
Getting started with uinput [http://thiemonge.org/getting-started-with-uinput]&lt;br /&gt;
A little example of code in C [http://thiemonge.org/getting-started-with-uinput]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=Functionalities&amp;diff=9659</id>
		<title>Functionalities</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=Functionalities&amp;diff=9659"/>
				<updated>2011-05-11T20:11:10Z</updated>
		
		<summary type="html">&lt;p&gt;KevinJ: /* IR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Functionalities=&lt;br /&gt;
This page lists all the hardware/software functionnalities available on the boards. &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;
==Audio==&lt;br /&gt;
===Audio Out===&lt;br /&gt;
*[[TSC2102_Linux_driver | Audio codec]]: TSC2102/TSC2101 audio codec &lt;br /&gt;
*[[Audio_with_PWM|PWM]]: sound generation using a PWM&lt;br /&gt;
*[[MAX9768| Amplifier]]: MAX9768 10W mono class D audio amplifier&lt;br /&gt;
&lt;br /&gt;
===Audio In===&lt;br /&gt;
*[[TSC2102_Linux_driver|Audio codec]]: TSC2101 audio codec&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
*[[ALSA]]: Advanced Linux Sound Architecture&lt;br /&gt;
*[[Madplay]]: Audio player for Unixes&lt;br /&gt;
*[[SDL]]: cross-platform multimedia library&lt;br /&gt;
*[[Gstreamer]]&lt;br /&gt;
*[[Flite]]: fast run-time voice synthesis engine&lt;br /&gt;
*[[Speex]]: speech codec&lt;br /&gt;
*[[Imxssi]]: simple low level I2S development/debug tool&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
==Video==&lt;br /&gt;
===Video Out===&lt;br /&gt;
*[[LCD]]&lt;br /&gt;
*[[BackLight]]&lt;br /&gt;
*[[DVI_/_HDMI]]&lt;br /&gt;
*[[TV_Output]]&lt;br /&gt;
*[[FrameBuffer]]&lt;br /&gt;
&lt;br /&gt;
===Video In===&lt;br /&gt;
*[[Camera_interface]]:&lt;br /&gt;
*[[C38A]]: CMOS sensor module (OV7620)&lt;br /&gt;
*[[GscpaWebcam]]: GSPCA compatible USB webcams&lt;br /&gt;
*[[PWC_Webcams]]&lt;br /&gt;
*[[USB_Webcams]]&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
*[[Video_for_Linux]]: Video 4 Linux&lt;br /&gt;
*[[Qt/Embedded]]: cross-platform general purpose API&lt;br /&gt;
*[[SDL]]: cross-platform multimedia library&lt;br /&gt;
*[[Gstreamer]]&lt;br /&gt;
*[[OpenCV]]&lt;br /&gt;
*[[FBGrab]]: Frame Buffer Grabber&lt;br /&gt;
*[[Mesa]]: Mesa 3D Graphics library&lt;br /&gt;
*[[Using_the_i.MX27_video_codec]]&lt;br /&gt;
*[[LCD4linux]]: driving low cost text and graphical LCD displays&lt;br /&gt;
&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;
==Wired Communication==&lt;br /&gt;
===UART/RS232===&lt;br /&gt;
*[[RS-232]]: global description&lt;br /&gt;
*[[Activate_i.MX_internal_UARTs]]&lt;br /&gt;
*[[Serial_ports_usage_on_Linux]]&lt;br /&gt;
*[[Serial_port_selection_generalities]]: to be merged with previous entry. text ok ??, copied in usb serial&lt;br /&gt;
*[[OpenCore_16550_IP_Linux_driver|Linux driver for the 16C550 FPGA IP (from OpenCore)]]&lt;br /&gt;
*[[USB_to_serial_adapter]]&lt;br /&gt;
*[[USB_Gadget#To_emulate_a_serial_link| USB gadget serial emulation]]&lt;br /&gt;
*[[Cu/uucp]]  To Be Completed&lt;br /&gt;
*[[RS232_Terminal_configuration]]: host applications to take control of your RS232 link&lt;br /&gt;
*[[Serial_Transfer|Serial transfers from Linux]]&lt;br /&gt;
&lt;br /&gt;
===I2C===&lt;br /&gt;
*[[I2C]]&lt;br /&gt;
*[[I2cread.c]]&lt;br /&gt;
*[[I2cwrite.c]]&lt;br /&gt;
&lt;br /&gt;
===SPI===&lt;br /&gt;
*[[SPI]]: To be completed (spi_dev modif in platform)&lt;br /&gt;
&lt;br /&gt;
===Ethernet / Network===&lt;br /&gt;
* manque une page pour décrire l'interface ethernet + commandes de bases sous linux/uboot&lt;br /&gt;
*[[Ethernet_MAC_address]]&lt;br /&gt;
*[[USB_to_Ethernet_adapter]]&lt;br /&gt;
*[[USB_Gadget#To_emulate_an_Ethernet_link|USB gadget ethernet emulation]]&lt;br /&gt;
*[[FTP]], [[NFS]], [[SSH]], [[Telnet]], [[Tftpboot]]&lt;br /&gt;
*[[Boa]]: BOA web server&lt;br /&gt;
*[[Ethernet console]] (in U-Boot)&lt;br /&gt;
*[[Network interface bandwidth measurement]]&lt;br /&gt;
&lt;br /&gt;
===USB===&lt;br /&gt;
*[[USB]]: create USB_OTG entry and delete this one&lt;br /&gt;
*[[USB_Host]]&lt;br /&gt;
*[[USB_Gadget]]&lt;br /&gt;
*[[USB_to_Ethernet_adapter]]&lt;br /&gt;
*[[USB_to_WiFi_adapter]]&lt;br /&gt;
*[[USB_to_serial_adapter]]: still under construction ?&lt;br /&gt;
*[[USB Boot]] (Linux)&lt;br /&gt;
*[[USB Webcams]]&lt;br /&gt;
*[[USB to Playstation joypad adapter]]&lt;br /&gt;
&lt;br /&gt;
===CAN Bus===&lt;br /&gt;
*[[CAN_bus_Linux_driver|MCP251X CAN bus controller]]&lt;br /&gt;
*[[CAN_bus_demo_MCP25020|Communication with a Microchip MCP25020 CAN I/O Expander]]&lt;br /&gt;
*[[CAN_bus_Linux_sja1000|SJA1000 CAN Bus controller]]&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
==Wireless==&lt;br /&gt;
===Wifi===&lt;br /&gt;
*[[WiFi|WiFi general usage (from Linux)]]&lt;br /&gt;
*[[USB_to_WiFi_adapter|How to use USB to WiFi adapters on your boards]]&lt;br /&gt;
*[[Libertas_driver]]: Marvell Technology Group's Libertas chipset drivers&lt;br /&gt;
*[[WPA supplicant]]&lt;br /&gt;
&lt;br /&gt;
===GSM/GPRS===&lt;br /&gt;
*[[GSM/GPRS]]&lt;br /&gt;
&lt;br /&gt;
===Bluetooth===&lt;br /&gt;
*[[Bluetooth]]&lt;br /&gt;
*[[OBEX]]&lt;br /&gt;
*[[TCP/IP_with_Bluetooth]]&lt;br /&gt;
*[[Wiimote]]&lt;br /&gt;
&lt;br /&gt;
===GPS===&lt;br /&gt;
*[[GPS]]&lt;br /&gt;
*[[GPS_daemon]]: service daemon monitoring one or more GPSes or AIS receivers&lt;br /&gt;
&lt;br /&gt;
===IR===&lt;br /&gt;
*[[IR_HID_USB_Remote|Infrared USB HID remote ]]&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;
==Storage / File System==&lt;br /&gt;
*[[MultiMediaCard]]&lt;br /&gt;
*[[USB_Host#USB_Flash_memory_.2F_USB_key_.2F_USB_card_reader_.2F_USB_Hard_Drive|USB drive/dongle usage]]&lt;br /&gt;
*[[USB_Gadget#To_emulate_a_mass_storage_device:|USB gadget mass storage emulation]]&lt;br /&gt;
*[[Create_a_FLASH_partition_to_store_user's_HOME]]&lt;br /&gt;
*[[UBIFS]]&lt;br /&gt;
*[[Using_Initial_RAM_disk]]: still nder construction ?&lt;br /&gt;
*[[Samba]]: access Windows remote partitions&lt;br /&gt;
*[[Network_File_System_configuration|Network File System (NFS)]]&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
==Realtime==&lt;br /&gt;
===Xenomai===&lt;br /&gt;
*[[Xenomai]]: real time co-kernel which cooperate with Linux via Adeos&lt;br /&gt;
*[[Xenomai:Blinking_LEDs]]: Xenomai:examples_usage&lt;br /&gt;
*[[Xenomai_manual_installation]]&lt;br /&gt;
*[[Adeos]]&lt;br /&gt;
&lt;br /&gt;
===RTC===&lt;br /&gt;
*[[RTC]]&lt;br /&gt;
*[[Watchdog]]&lt;br /&gt;
&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;
==User Input==&lt;br /&gt;
*[[USB_Host#USB_keyboard.2Fmouse_.28HID:_Human_Interface_Device.29| USB input device]]&lt;br /&gt;
*[[Keypad]]: keypad based on GPIO matrix&lt;br /&gt;
*[[Joystick]]: still under construction ?&lt;br /&gt;
*[[PS/2]]: APF9328 only&lt;br /&gt;
*[[TSC2102_Linux_driver| Touchscreen]]: TSC210x 4 wires resistive touch controler&lt;br /&gt;
*[[GPM]]: mouse support for Linux on the console&lt;br /&gt;
*[[Wiimote]]&lt;br /&gt;
*[[Tslib]]: Linux touchscreen interface&lt;br /&gt;
*[[USB to Playstation joypad adapter]]&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
*[[AS1531|AS1531]]: 8 channels 12bits ADC (SPI)&lt;br /&gt;
* [[MCP4912|MCP4912]]: 2 channels 10bits DAC (SPI)&lt;br /&gt;
*[[ADC_max1027|MAX1027]]: 8 channels 10bits ADC (SPI)&lt;br /&gt;
*[[Max5821|MAX5821]]: 2 channels 10bits DAC (I2C)&lt;br /&gt;
*[[BQ27x00]]: series of battery gas gauge&lt;br /&gt;
*[[GPIO Driver]]&lt;br /&gt;
*[[JTAG]]&lt;br /&gt;
*[[Led_sensor|Using a LED as a light sensor]]&lt;br /&gt;
*[[URG_laser]]&lt;br /&gt;
*[[PWM]]&lt;br /&gt;
*[[Watchdog]]&lt;br /&gt;
&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;
==Bootloader==&lt;br /&gt;
*[[BootLoader | U-Boot useful tips]]&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
==Bootstrap==&lt;br /&gt;
* [[BootStrap | Install U-Boot from scratch or recover your U-Boot if it was corrupted]]&lt;/div&gt;</summary>
		<author><name>KevinJ</name></author>	</entry>

	</feed>