skip menu and go to main content

body start

ODROID-A -PC

Project News

Project Info

  • This project has not yet categorized Software Map
  • Member count : 9
  • Registered:  : 2011.04.05
  • Activity Percentile:  : 100%

activity viewforum,download view


1 Introduction


Odroid-A project is world first Android open source tablet platform using Samsung Exynos4210 dual core CPU. HardKernel develop, manufacture and sell the Odroid-A devices to developers. Full source code and schematics are delivered with the package.

The Odroid-A is a development platform that enables Integrators, Developers and OEMs to create customized applications and Android environment.

Developers and OEMs can purchase the Odroid-A Developer Edition with Android 2.3(Gingerbread) and then download FREE firmware updates in the future.

Please note that the Odroid-A is a development platform and its specifications are subject to change without notice and it may include Beta and Pre-Release software. As such it is not designed for end-users.

2 Hardware Information

Full schematics are stored in the Odroid-A memory card.

2.1 Block diagram

odroida_blockdiagram.jpg

2.2 Exynos4210 CPU Board


CPU : Samsung Exynos4210 Cortex-A9 Dualcore 1Ghz with 1MB L2 cache, 3D Accelerator : Mali-400 MP Core

Memory : 1024MB LP DDR2 800Mega data rate

PMIC : MAX8997 7 DC/CD Converters 21 LDOs 169-pins 0.4pitch WLP package

ETC: 350pin board-to-board connector for extension, RTC backup capacitor

2.2.1 CPU Board components

odroida_cpuboard.jpg

2.3 Board to Board connector location data

Please consider connector J1 of CPU board should be matching to J1 of Base board. Below link data is useful for designing your own base board. Base board side pin location data : @ODROID-A_BASE_B2B.zip (59.9 KB)


2.3.1 Board to Board connector pin map

pin# Pin nameFunctionCMT pin# Pin nameFunctionCMT
J1-1-GNDGNDJ1-50-GNDGND
J1-2-GNDGNDJ1-49-GNDGND
J1-3XMMC2DATA_3SD_2_DATA[3]-J1-48XMMC2CMDSD_2_CMD-
J1-4XMMC2DATA_2SD_2_DATA[2]-J1-47XMMC2CDNGPK2[2]-
J1-5XMMC2CLKSD_2_CLK-J1-46XMIPISDN3MIPI_SDN_3-
J1-6XI2S2SCLKGPC1[0]-J1-45XMIPISDP3MIPI_SDP_3-
J1-7XI2C1SDAI2C_1_SDA-J1-44XMIPISDN2MIPI_SDN_2-
J1-8XI2S2SDIGPC1[3]-J1-43XMIPISDP2MIPI_SDP_2-
J1-9XI2C1SCLI2C_1_SCL-J1-42XMIPISDNCLKMIPI_CLK_RX_N-
J1-10XI2S1LRCKGPC0[2]-J1-41XMIPISDPCLKMIPI_CLK_RX_P-
J1-11XUTXD_1UART_1_TXD-J1-40XMIPISDN1MIPI_SDN_1-
J1-12XI2S1SDOGPC0[4]-J1-39XMIPISDP1MIPI_SDP_1-
J1-13XI2S1SCLKGPC0[0]-J1-38XMIPISDN0MIPI_SDN_0-
J1-14XPWMTOUT_1GPD0[1]-J1-37XMIPISDP0MIPI_SDP_0-
J1-15XUCTSN_0UART_0_CTSn-J1-36XMIPIMDN3MIPI_MDN_3-
J1-16XJTDIXjTDI-J1-35XMIPIMDP3MIPI_MDP_3-
J1-17XJTMSXjTMS-J1-34XMIPIMDN2MIPI_MDN_2-
J1-18XJTRSTNXjTRSTn-J1-33XMIPIMDP2MIPI_MDP_2-
J1-19XJTCKXjTCK-J1-32XMIPIMDNCLKMIPI_CLK_TX_N-
J1-20XJTDOXjTDO-J1-31XMIPIMDPCLKMIPI_CLK_TX_P-
J1-21XUCTSN_1I2C_2_SDA-J1-30XMIPIMDN1MIPI_MDN_1-
J1-22XURXD_3UART_3_RXD-J1-29XMIPIMDP1MIPI_MDP_1-
J1-23XURXD_2UART_2_RXD-J1-28XMIPIMDN0MIPI_MDN_0-
J1-24XI2S2LRCKGPC1[2]-J1-27XMIPIMDP0MIPI_MDP_0-
J1-25-GNDGNDJ1-26-GNDGND
J2-1-GNDGNDJ2-50XSBUSDATASLIMbusData-
J2-2XI2S1CDCLKGPC0[1]-J2-49XSBUSCLKSLIMbusClk-
J2-3XI2S2SDOGPC1[4]-J2-48XI2S1SDIGPC0[3]-
J2-4XPWMTOUT_3GPD0[3]-J2-47XI2S2CDCLKGPC1[1]-
J2-5XUTXD_0UART_0_TXD-J2-46XHDMITXCNHDMI_TXCN-
J2-6XSPIMISO_1SPI_1_MISO-J2-45XHDMITXCPHDMI_TXCP-
J2-7XPWMTOUT_2TOUT_2-J2-44XHDMITX0NHDMI_TX0N-
J2-8XURTSN_0UART_0_RTSn-J2-43XHDMITX0PHDMI_TX0P-
J2-9XVVD_2LCD_VD[2]-J2-42XHDMITX1NHDMI_TX1N-
J2-10XSPIMOSI_0I2C_4_SCL-J2-41XHDMITX1PHDMI_TX1P-
J2-11XVHSYNCLCD_HSYNC-J2-40XHDMITX2NHDMI_TX2N-
J2-12XSPICSN_0SPI_0_nSS-J2-39XHDMITX2PHDMI_TX2P-
J2-13XVVD_12LCD_VD12-J2-38XPWMTOUT_0TOUT_0-
J2-14XUTXD_2UART_2_TXD-J2-37XURTSN_1I2C_2_SCL-
J2-15XVVD_19LCD_VD19-J2-36XURXD_1UART_1_RXD-
J2-16XVVSYNCLCD_VSYNC-J2-35XSPIMISO_0I2C_4_SDA-
J2-17XVVD_18LCD_VD18-J2-34XSPICLK_0GPB[0]-
J2-18XVVD_8LCD_VD[8]-J2-33XSPIMOSI_1SPI_1_MOSI-
J2-19XVVD_22LCD_VD22-J2-32XSPICLK_1SPI_1_CLK-
J2-20XVVD_11LCD_VD11-J2-31XUTXD_3UART_3_TXD-
J2-21XVVD_4LCD_VD[4]-J2-30XUCTSN_2UART_2_CTSn-
J2-22XVVD_21LCD_VD21-J2-29XURXD_0UART_0_RXD-
J2-23XVVD_17LCD_VD17-J2-28XURTSN_2UART_2_RTSn-
J2-24XVVD_14LCD_VD14-J2-27XSPICSN_1SPI_1_nSS-
J2-25-GNDGNDJ2-26-GNDGND
J3-1-GNDGNDJ3-50-GNDGND
J3-2XMMC3DATA_1SD_3_DATA[1]-J3-49-GNDGND
J3-3XMMC3DATA_3SD_3_DATA[3]-J3-48XUOTGDRVVBUSXuotgDRVVBUS-
J3-4XMMC3CDNSD_3_CDn-J3-47XUHOSTPWRENXuhostPWREN-
J3-5XMMC3DATA_0SD_3_DATA[0]-J3-46XUHOSTOVERCURXuhostOVERCUR-
J3-6XMMC3CLKSD_3_CLK-J3-45XUOTGDPXuotgDP-
J3-7XMMC3DATA_2SD_3_DATA[2]-J3-44XUOTGDMXuotgDM-
J3-8XMMC3CMDSD_3_CMD-J3-43XUOTGIDXuotgID-
J3-9XI2S0CDCLKI2S_0_SCLK-J3-42XUOTGVBUSXuotgVBUS-
J3-10XI2S0LRCKI2S_0_LRCK-J3-41-GNDGND
J3-11XI2S0SDII2S_0_SDI-J3-40XUHOSTDPXuhostDP-
J3-12XI2S0SCLKI2S_0_SCLK-J3-39XUHOSTDMXuhostDM-
J3-13XI2S0SDO_0I2S_0_SDO[0]-J3-38-LDO13PMIC
J3-14XGNSS_ISIGNGNSS_ISIGN-J3-37-LDO21PMIC
J3-15XGNSS_IMAGGNSS_IMAG-J3-36-LDO21PMIC
J3-16XGNSS_RF_RSTNGNSS_RF_RSTN-J3-35-LDO14PMIC
J3-17-32KHzCPPMICJ3-34-LDO16PMIC
J3-18-PWRONPMICJ3-33-LDO15PMIC
J3-19-JIGONPMICJ3-32-BAT-
J3-20-MR2BPMICJ3-31-BAT-
J3-21-BUCK6_ENPMICJ3-30-BAT-
J3-22-MR1BPMICJ3-29-BAT-
J3-23-GNDGNDJ3-28-BUCK6PMIC
J3-24-GNDGNDJ3-27-BUCK6PMIC
J3-25-GNDGNDJ3-26-BUCK6PMIC
J4-1-BUCK7PMICJ4-50-LDO5PMIC
J4-2-BUCK7PMICJ4-49-LDO9PMIC
J4-3-LDO4PMICJ4-48-LDO9PMIC
J4-4XEINT_29WAKEUP_INT3[5]-J4-47XI2C0SCLI2C_0_SCL-
J4-5XEINT_31HDMI_HPD-J4-46XI2C0SDAI2C_0_SDA-
J4-6XEINT_21GPX2[5]-J4-45-LDO1PMIC
J4-7XEINT_30HDMI_CEC-J4-44XNWRESETXnWRESET-
J4-8XEINT_25WAKEUP_INT3[1]-J4-43XOM_3XOM[3]-
J4-9XEINT_12GPX1[4]-J4-42XOM_2XOM[2]-
J4-10XEINT_8GPX1[0]-J4-41XOM_1XOM[1]-
J4-11XEINT_5GPX0[5]-J4-40XOM_5XOM[5]-
J4-12XEINT_10GPX1[2]-J4-39XOM_4XOM[4]-
J4-13XADCAIN_8AIN[8]-J4-38XEINT_19GPX2[3]-
J4-14XADCAIN_7AIN[7]-J4-37XEINT_6GPX0[6]-
J4-15XADCAIN_6AIN[6]-J4-36XEINT_11GPX1[3]-
J4-16XADCAIN_9AIN[9]-J4-35XEINT_7GPX0[7]-
J4-17XEINT_24GPX3[0]-J4-34XPWRRGTONXPWRRGTON-
J4-18XEINT_18WAKEUP_INT2[2]-J4-33XEINT_9GPX1[1]-
J4-19XEINT_23WAKEUP_INT2[7]-J4-32XEINT_3GPX0[3]-
J4-20XEINT_27GPX3[3]-J4-31XEINT_28GPX3[4]-
J4-21XEINT_17WAKEUP_INT2[1]-J4-30XEINT_16WAKEUP_INT2[0]-
J4-22XEINT_2WAKEUP_INT0[2]-J4-29XEINT_20WAKEUP_INT2[4]-
J4-23-EXT_nRST-J4-28XEINT_26WAKEUP_INT3[2]-
J4-24-GNDGNDJ4-27XEINT_13WAKEUP_INT1[5]-
J4-25-GNDGNDJ4-26XEINT_22WAKEUP_INT2[6]-
J5-1XMDMADDR_5CAM_B_DATA[5]-J5-50XMDMADDR_3CAM_B_DATA[3]-
J5-2XMDMADDR_2CAM_B_DATA[2]-J5-49XMDMADDR_4CAM_B_DATA[4]-
J5-3XMDMADDR_6CAM_B_DATA[6]-J5-48XMDMADDR_8MDM_ADDR[8]-
J5-4XMDMADDR_0CAM_B_DATA[0]-J5-47XMDMADDR_9MDM_ADDR[9]-
J5-5XMDMADDR_7CAM_B_DATA[7]-J5-46XMDMADDR_12MDM_ADDR12-
J5-6XMDMADDR_13MDM_ADDR13-J5-45XMDMADDR_11MDM_ADDR11-
J5-7XMDMDATA_5MDM_DATA[5]-J5-44XMDMADDR_10MDM_ADDR10-
J5-8XMDMDATA_0MDM_DATA[0]-J5-43XMDMADDR_1CAM_B_DATA[1]-
J5-9XMDMDATA_10MDM_DATA10-J5-42XMDMDATA_7MDM_DATA[7]-
J5-10XMDMDATA_6MDM_DATA[6]-J5-41XMDMDATA_1MDM_DATA[1]-
J5-11XMDMDATA_3MDM_DATA[3]-J5-40XMDMDATA_9MDM_DATA[9]-
J5-12XMDMDATA_8MDM_DATA[8]-J5-39XMDMDATA_4MDM_DATA[4]-
J5-13XMDMDATA_2MDM_DATA[2]-J5-38XMDMIRQNGPE0[3]-
J5-14XMDMCSNCAM_B_VSYNC-J5-37XMDMDATA_12MDM_DATA12-
J5-15XMDMRNCAM_B_HERF-J5-36XMDMWENCAM_B_PCLK-
J5-16XVVD_9LCD_VD[9]-J5-35XVVD_13LCD_VD13-
J5-17XVVD_3LCD_VD[3]-J5-34XVVD_15LCD_VD15-
J5-18XVVCLKLCD_VCLK-J5-33XMDMDATA_11MDM_DATA11-
J5-19XVVD_10LCD_VD10-J5-32XVVD_20LCD_VD20-
J5-20XVVD_1LCD_VD[1]-J5-31XMDMADVNCAM_B_CLKOUT-
J5-21XVVDENLCD_VDEN-J5-30XVVD_5LCD_VD[5]-
J5-22XVVD_23LCD_VD23-J5-29XVVD_6LCD_VD[6]-
J5-23XVVD_0LCD_VD[0]-J5-28XVVD_16LCD_VD16-
J5-24-GNDGNDJ5-27XVVD_7LCD_VD[7]-
J5-25-GNDGNDJ5-26-GNDGND
J6-1-GNDGNDJ6-50-LDO7PMIC
J6-2XSATARX2PXsataRX2P-J6-49XM0DATA_11EBI_DATA11-
J6-3XSATARX2MXsataRX2M-J6-48XM0CSN_3OND_CSn[1]-
J6-4XSATATX2MXsataTX2M-J6-47XM0DATA_0EBI_DATA[0]-
J6-5XSATATX2PXsataTX2P-J6-46XM0DATA_4EBI_DATA[4]-
J6-6XSATAREFCLKPXsataREFCLKP-J6-45XM0DATA_5EBI_DATA[5]--
J6-7XSATAREFCLKMXsataREFCLKM-J6-44XM0DATA_13EBI_DATA13-
J6-8XM0DATA_14EBI_DATA14-J6-43XMMC0DATA_0SD_0_DATA[0]-
J6-9XM0DATA_3EBI_DATA[3]-J6-42XMMC1CDNGPK1[2]-
J6-10XM0DATA_15EBI_DATA15-J6-41XMMC1CLKGPK1[0]-
J6-11XM0DATA_RDNEBI_DATA_RDn-J6-40XMMC1DATA_0GPK1[3]-
J6-12XMMC1DATA_3SD_1_DATA[3]-J6-39XCICLKENBCAM_A_CLKOUT-
J6-13XMMC1DATA_1GPK1[4]-J6-38XCIDATA_1CAM_A_DATA[1]-
J6-14XMMC1DATA_2GPK1[5]-J6-37XCIVSYNCCAM_A_VSYNC-
J6-15XMMC1CMDGPK1[1]-J6-36XCIDATA_6CAM_A_DATA[6]-
J6-16XMMC0DATA_1SD_0_DATA[1]-J6-35XCIHREFCAM_A_HREF-
J6-17XMMC0CDNSD_0_CDn-J6-34XCIDATA_4CAM_A_DATA[4]-
J6-18XMMC0CLKSD_0_CLK-J6-33XCIPCLKCAM_A_PCLK-
J6-19XMMC0DATA_2SD_0_DATA[2]-J6-32XCIDATA_7CAM_A_DATA[7]-
J6-20XMMC0DATA_3SD_0_DATA[3]-J6-31XCIDATA_3CAM_A_DATA[3]-
J6-21XMMC0CMDSD_0_CMD-J6-30XCIFIELDGPJ1[4]-
J6-22XMMC2DATA_0SD_2_DATA[0]-J6-29XCIDATA_0CAM_A_DATA[0]-
J6-23XMMC2DATA_1SD_2_DATA[1]-J6-28XCIDATA_2CAM_A_DATA[2]-
J6-24-GNDGNDJ6-27XCIDATA_5CAM_A_DATA[5]-
J6-25-GNDGNDJ6-26-LDO6PMIC
J7-1XM0ADDR_4EBI_ADDR[4]-J7-50XM0ADDR_12EBI_ADDR12-
J7-2XM0CSN_1SROM_CSn[1]-J7-49XM0ADDR_9EBI_ADDR[9]-
J7-3XM0ADDR_8EBI_ADDR[8]-J7-48XM0ADDR_1EBI_ADDR[1]-
J7-4XM0ADDR_10EBI_ADDR10-J7-47XM0BEN_0EBI_BEn[0]-
J7-5XM0ADDR_15EBI_ADDR15-J7-46XM0ADDR_5EBI_ADDR[5]-
J7-6XM0ADDR_13EBI_ADDR13-J7-45XM0ADDR_0EBI_ADDR[0]-
J7-7XM0ADDR_7EBI_ADDR[7]-J7-44XM0ADDR_3EBI_ADDR[3]-
J7-8XGNSS_GPIO_1XGNSS_GPIO[1]-J7-43XM0BEN_1EBI_BEn[1]-
J7-9XGNSS_MCLKXGNSS_MCLK-J7-42XM0ADDR_6EBI_ADDR[6]-
J7-10XGNSS_SCLXGNSS_SCL-J7-41XM0ADDR_14EBI_ADDR14-
J7-11XGNSS_EPOCHXGNSS_EPOCH-J7-40XM0OENEBI_OEn-
J7-12XGNSS_RTC_OUTXGNSS_RTC_OUT-J7-39XM0DATA_2EBI_DATA[2]-
J7-13XGNSS_CLKREQXGNSS_CLKREQ-J7-38XM0CSN_0SROM_CSn[0]-
J7-14XGNSS_GPIO_2XGNSS_GPIO[2]-J7-37XM0WENEBI_WEn-
J7-15XGNSS_SDAXGNSS_SDA-J7-36XM0DATA_1EBI_DATA[1]-
J7-16XGNSS_GPIO_4XGNSS_GPIO[4]-J7-35XM0DATA_9EBI_DATA[9]-
J7-17XGNSS_QMAGXGNSS_QMAG-J7-34XM0DATA_12EBI_DATA12-
J7-18XGNSS_SYNCXGNSS_SYNC-J7-33XM0DATA_7EBI_DATA[7]-
J7-19XGNSS_GPIO_3XGNSS_GPIO[3]-J7-32XM0DATA_10EBI_DATA10-
J7-20XGNSS_GPIO_5XGNSS_GPIO[5]-J7-31XM0DATA_8EBI_ADDR[8]-
J7-21XGNSS_GPIO_7XGNSS_GPIO[7]-J7-30XM0DATA_6EBI_ADDR[6]-
J7-22XGNSS_GPIO_6XGNSS_GPIO[6]-J7-29XM0ADDR_2EBI_ADDR[2]-
J7-23XGNSS_GPIO_0XGNSS_GPIO[0]-J7-28XM0WAITNSROM_WAITn-
J7-24XGNSS_QSIGNXGNSS_QSIGN-J7-27XM0ADDR_11EBI_ADDR11-
J7-25-GNDGNDJ7-26-GNDGND

2.3.2 Base board Extention Connector pin map

2.3.2.1 ODROID-A

pin# FunctionCMT pin# FunctionCMT
J18-1GNDGNDJ18-2GNDGND
J18-3USBHOST_PWRENUSB HubJ18-4USBHOST_D_PUSB Hub
J18-5USB_OVERCURUSB HubJ18-6USBHOST_D_NUSB Hub
J18-7I2C1_SDACPUJ18-8GPA1[0]/UART_2_RXD/UART_AUDIO_RXDCPU
J18-9I2C1_SCLCPUJ18-10GPA1[1]/UART_2_TXD/UART_AUDIO_TXDCPU
J18-11GPD0[2]/TOUT_2/I2C_7_SDACPUJ18-12GPA1[2]/UART_2_CTSn/I2C_3_SDACPU
J18-13GPX0[5]/ALV_DBG[1]/WAKEUP_INT0[5]CPUJ18-14GPA1[3]/UART_2_RTSn/I2C_3_SCLCPU
J18-15GPA1[4]/UART_3_RXD/UART_AUDIO_RXDCPUJ18-16GNDGND
J18-17GPA1[5]/UART_3_TXD/UART_AUDIO_TXDCPUJ18-18AIN[6]CPU
J18-19GPX2[6]/KP_ROW[6]/ALV_DBG18/WAKEUP_INT2[6]CPUJ18-20AIN[7]CPU
J18-21GPX2[4]/KP_ROW[4]/ALV_DBG16/WAKEUP_INT2[4]CPUJ18-22AIN[8]CPU
J18-23GPX2[0]/KP_ROW[0]/ALV_DBG12/WAKEUP_INT2[0]CPUJ18-24AIN[9]CPU
J18-25SYSBATJ18-26SYSBAT
J18-27VDD_18_IO-J18-28VDD_28_IO-
J18-29GNDGNDJ18-30GNDGND

2.3.2.2 ODROID-PC

pin# FunctionCMT pin# FunctionCMT
J18-1GNDGNDJ18-2GNDGND
J18-3NONENONEJ18-4Xi2s2SDO/PCM_SOUT2/i2cSCL6/spiMOSI2/GPC1_4CPU
J18-5NONENONEJ18-6Xi2s2SDI/PCM_SIN2/i2sSDA6/spiMISO2/GPC1_3CPU
J18-7GPA1[0]/UART_2_RXD/UART_AUDIO_RXDCPUJ18-8I2C1_SDACPU
J18-9GPA1[1]/UART_2_TXD/UART_AUDIO_TXDCPUJ18-10I2C1_SCLCPU
J18-11GPA1[2]/UART_2_CTSn/I2C_3_SDACPUJ18-12P3V3POWER
J18-13GPA1[3]/UART_2_RTSn/I2C_3_SCLCPUJ18-14P3V3POWER
J18-15NONENONEJ18-16GNDGND
J18-17NONENONEJ18-18AIN[6]CPU
J18-19XEINT_22/KP_ROW6/ALV_DBG18/GPX2_6CPUJ18-20AIN[7]CPU
J18-21XEINT_20/KP_ROW4/ALV_DBG16/GPX2_4CPUJ18-22AIN[8]CPU
J18-23GXEINT_16/KP_ROW0/ALV_DBG12/GPX2_0CPUJ18-24AIN[9]CPU
J18-25NONENONEJ18-26VDD_28_IOPOWER
J18-27SYSBATJ18-28SYSBAT
J18-29GNDGNDJ18-30GNDGND

2.4 Base Board


3G ModemF5521GW has HSPA+/WCDMA/GSM/GPRS/EDGE connectivity and standalone GPS engine from Ericsson
WiFi/BT Combo ModuleBCM4329 based module complies with IEEE 802.11 b/g/n + Bluetooth 2.1 EDR
Audio CODECMAX98089 is a full-featured and high performance audio CODEC from MAXIM
Charger ControllerMAX8903C, Switch mode Charge Li-Polymer battery with smart power path control
Fuel gaugeMAX17040 battery energy gauge
DC/DC ConvertersMAX1790 for LCD backlight, XC9128 for USB host/HDMI, MAX15038 for 3G Modem
LVDS transmitterDTC34LM85AL for RGB parallel to LVDS converter from DOESTEK
Level shifterFXMA2102L8X for I2C/UART/HDMI voltage translator from Fairchild semiconductor
USB hubUSB2514B ultra low power USB 2.0 HS Hub controller from SMSC
Load switchMAX8586 USB VBUS load controller
GyroscopeMPU3050 has an embedded 3-axis gyroscope and Digital Motion Processor from Invensense
AccelerometerBMA150 is a 3-axis, low-g acceleration sensor from Bosch Sensortec
Geomagnetic sensorAMS0303M is an e-compass for detecting earth's magnetic field from Amosense
Motor driverISH1000 linear vibrator driver from Imagis Technology
Camera(Back)- 3Mpixel Camera: LM35SS module contains QXGA(2048x1536) format sensor(Samsung S5K5CAG) with AutoFocus mechanism from Hansung Elcomtec.
Camera(Front)- 1.3Mpixel Camera: CM130HF module contains SXGA(1280x1024) format sensor(Samsung S5K5AAFA) from Partron
Linear Motorfrom Samsung Electro-Mechanics
Touch Screen10.1inch capacitive multi-touch from Tei corporation
Board to Board connectorfor CPU board and Application board from Uju Electronics
HDMIStandard type-C, support up to 1920 x 1080 resolution
IO(TTA20)USB and Serial port for system monitoring
DC Jackinner diameter 1.3mm, outer diameter 3.5mm(5V 2A)

2.4.1 Base Board components

2.4.1.1 ODROID-A


odroida_baseboard.jpg

2.4.1.2 ODROID-PC


odroid-pc_overview.jpg


3 Development Setup


4 T-flash sector map for Odroid-A


Caution : It depends on different Release version. You have to check your version of ODROID-A Update Image first!!!

Odroid-A has 8Gbyte T-flash(removable) memory card. Assume it has 255 heads, 62 sectors/track, 1021 cylinders and Sector size is 512bytes.

4.1 After release version of ODROID-A Update Image 27-May


Area NameSize in bytesStart AddressPartition Name
FAT32 for Storage0x1916D0000(6,734,807,040)0x5A396C00(1,513,712,640)mmcblkp1
EXT4 for Android Cache0x833C400(137,610,240)0x5205A800(1,376,102,400)mmcblkp4
EXT4 for Android Data0x402B9400(1,076,597,760)0x11DA1400(299,504,640)mmcblkp3
EXT4 for Android System0x10678800(275,220,480)0x1728C00(24,284,160)mmcblkp2
RAMDISK0xB74000(12,009,472)0x48C000(4,767,744)
KERNEL0x400000(4,194,304)0x8C000(573,440)
BL20x80000(524,288)0x4200(16896)
BL10x4000(16384)0x200(512)
Partition table / MBR0x200(512)0x0(0)

Note : You can also update them all with dd(data dump) command on the Linux.

For example : kernel updating
$ sudo dd if=zImage of=/dev/sdc bs=1 seek=573440

- zImage : kernel update image
- /dev/sdc : micro-sd card device node
(It should be unmount status and be very careful)
- 573440 : Start Address of kernel AREA(Decimal number)


4.2 Before Release version of ODROID-A Update Image 27-May


Area NameSize in bytesStart AddressPartition Name
FAT32 for Storage0x191E88400(6,742,901,760)0x59BDE800(1,505,617,920)mmcblkp1
EXT4 for Android Cache0x833C400(137,610,240)0x518A2400(1,368,007,680)mmcblkp4
EXT4 for Android Data0x402B9400(1,076,597,760)0x115E9000(291,409,920)mmcblkp3
EXT4 for Android System0x10678800(275,220,480)0xF70800(16,189,440)mmcblkp2
RAMDISK0xAE8600(11,437,568)0x488200(4,751,872)
KERNEL0x400000(4,194,304)0x88200(557,568)
BL20x80000(524,288)0x8200(33280)
ENV0x4000(16,384)0x4200(16896)
BL10x2000(8,192)0x200(512)
Partition table / MBR0x200(512)0x0(0)

Note : You can also update them all expect bootloader with dd(data dump) command on the Linux.

In this case of bootloader CAN NOT update using fastboot

For example : kernel updating
$ sudo dd if=zImage of=/dev/sdc bs=1 seek=557568

- zImage : kernel update image
- /dev/sdc : micro-sd card device node
(It should be unmount status and be very careful)
- 557568 : Start Address of kernel AREA(Decimal number)


5 Recovery utility

If your Odroid-A file system is broken or damaged, you can recover the T-flash card with this utility.


Unplug your T-flash from ODROID-A and connect it to your PC.

Note: This software is compatible with only Windows-XP. Perform enforcement the compatibility mode with Windows-Vista or Windows-7.

You can also recover ODROID-A file system with dd(data dump) command on the Linux.

$ sudo dd if=odroid_a_img.odt of=/dev/sdx bs=4096

Note: You can get odroid_a_img.odt(the file name might not be the same) from [http]http://com.odroid.com/sigong/nf_file_board/nfile_board.php, /dev/sdx is your T-flash device node and it should be unmount status.

6 ADB USB driver for Windows

The Windows XP/VISTA ADB device driver for application developers can be found here.

7 User's manual

8 ODROID-A & PC Uboot

9 ODROID-A & PC Linux Kernel

9.1 Preface

This page will explain how to compile Linux Kernel for ODROID-A.

9.2 Build enironment

Tested with Ubuntu 10.04/10.10/11.04 (Other Linux package might be fine to build Linux Kernel) 64bit version is also working well.

9.3 Source code download

Linux kernel source code is stored in bundled micro SD card.

Please use this link to get the latest source code because there are many updates.


9.4 Kernel compile

To start Kernel compile, .config file should be made first. Odroid-a Kenel configuration file is located in arch/arm/configs/odroida_android_defconfig You can make .config with below command.

9.4.1 ODROID-A

# make ARCH=arm odroida_android_defconfig ====> Odroid-a
Let's start compile !
# make ARCH=arm CROSS_COMPILE=arm-none-eabi-

9.4.2 ODROID-PC

# make ARCH=arm odroida_android_pc_defconfig ====> Odroid-PC
Let's start compile !
# make ARCH=arm CROSS_COMPILE=arm-none-eabi-

If you build kernel successfully, you will have "arch/arm/boot/zImage" (approximately 2Mbytes).

9.5 Transfer kernel image to target board

9.5.1 For Windows(XP) PC Users

  • Use Windows utility fastboot.exe and USB driver. You can get the fastboot.exe from [http]Android Developers and USB driver from this link and uncompress it.
[http]http://dev.odroid.com/projects/odroida/download/70?filename=windows-usb_driver-fastboot.zip

1) Connect Debug board and PC serial port with Serial Cable(1:1)

2) Run serial communication software in PC (HyperTerminal/SecureCRT/etc)

3) Configure serial port options (COM port, Baudrate : 115200, DATA : 8, STOP : 1, No-Parity, No Flow Control)

4) Turn on Odroid and you can see the below booting message. Be sure to press any key quickly to stop the OS booting process.

OK

U-Boot 2010.03-svn ( 4?? 05 2011 - 21:19:18) for HKDKC210 Android

	APLL = 1000MHz, MPLL = 800MHz
PMIC:	
Board:	hkdkc210
EVT1 POP_B
DRAM:	 1 GB
OneNAND:  0 kB
MMC:   	3884 MB
*** Warning - using default environment

In:    serial
Out:   serial
Err:   serial


Checking Boot Mode ... SDMMC
board_late_init
Hit any key to stop autoboot:  1 
HKDKC210 # 

5) With "fastboot" command, you can download any binary file to Odroid RAM from PC via USB.

HKDKC210 # fastboot
[Partition table on MoviNAND]
ptn 0 name='bootloader' start=0x0 len=N/A (use hard-coded info. (cmd: movi))
ptn 1 name='kernel' start=N/A len=N/A (use hard-coded info. (cmd: movi))
ptn 2 name='ramdisk' start=N/A len=0x300000(~3072KB) (use hard-coded info. (cmd: movi))
ptn 3 name='system' start=0xF70800 len=0x10678800(~268770KB) 
ptn 4 name='userdata' start=0x115E9000 len=0x402B9400(~1051365KB) 
ptn 5 name='cache' start=0x518A2400 len=0x833C400(~134385KB) 
ptn 6 name='fat' start=0x59BDE800 len=0x91E88400(~2390561KB) 
Insert a OTG cable into the connector!

6) If you plug in the USB Cable, you are ready to send binary files to Odroid.

7) It's time to execute fastboot.exe utility. But, you should install the USB driver first.
Driver installation is only required for the first time of USB connection. Driver file location at this link.


8) Run cmd.exe like this

Windows(Start) --> Run --> input "cmd" --> Enter

9) Excute fastboot command (It has to contain Your Env PATH)

Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\neal>echo %PATH%
C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;
C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files\Windows Live\Shared;C:\Program Files\Altium Designer Summer 09\
System;C:\Program Files\OpenSSH\bin;C:\Program Files\SlikSvn\bin\;C:\Program Fil
es\Android\android-sdk\tools

C:\Users\neal>

10) If you want to update kernel, you have to write down below the command.

C:\project\Odroid-a\RawImage>fastboot flash kernel zImage
sending 'kernel' (3231 KB)...
OKAY [  0.478s]
writing 'kernel'...
OKAY [  0.792s]
finished. total time: 1.270s

C:\project\Odroid-a\RawImage>

Note : zImage is your KERNEL image file that will be write to your Odroid-A

11) And you have to confirm to write is OK on your serial communication software in PC (HyperTerminal/SecureCRT/etc)

Received 17 bytes: download:00327c54
Starting download of 3308628 bytes
...
downloading of 3308628 bytes finished
Received 12 bytes: flash:kernel
flashing 'kernel'
writing kernel.. 1089, 8192 
MMC write: dev # 0, block # 1089, count 8192 ... .8192 blocks written: OK
completed
partition 'kernel' flashed

12) If you want to update RAMDISK, you have to write down below the command.

C:\project\Odroid-a\RawImage>fastboot flash ramdisk ramdisk-uboot.img
Note : ramdisk-uboot is your ramdisk image file that will be write to your Odroid-A


9.5.2 For Linux (Ubuntu) PC Users

* Use one of Android tools fastboot. You can get the file from Android out folder which is built by your Android system.
  • To execute fastboot, you need to install libusb.

$ sudo apt-get install libusb-dev

1) Connect the Debug board and PC serial port with Serial Cable(1:1)

2) Run serial communication software in PC (minicom or others)

3) Set serial options (COM port, Baudrate : 115200, DATA : 8, STOP : 1, No-Parity, No Flow Control)

4) Turn on Odroid and you can see below booting message. You need to quickly press any key to stop the OS booting process.

OK                                                   
                                                     
U-Boot 2010.03-svn ( 3� 28 2011 - 15:44:25) for HKDKC210 Android

        APLL = 1000MHz, MPLL = 800MHz
PMIC:
Board:  hkdkc210
EVT1 POP_B
DRAM:    1 GB
OneNAND:  0 kB
MMC:    3884 MB
*** Warning - using default environment

In:    serial
Out:   serial                                                                   
Err:   serial                                                                   
                                                                                
                                                                                
Checking Boot Mode ... SDMMC                                                    
board_late_init                                                                 
Hit any key to stop autoboot:  0                                                
HKDKC210 #

5) With "fastboot" command, you can download any binary file to Odroid RAM from PC via USB.
HKDKC210 # fastboot                                                             
[Partition table on MoviNAND]                                                   
ptn 0 name='bootloader' start=0x0 len=N/A (use hard-coded info. (cmd: movi))    
ptn 1 name='kernel' start=N/A len=N/A (use hard-coded info. (cmd: movi))        
ptn 2 name='ramdisk' start=N/A len=0x300000(~3072KB) (use hard-coded info. (cmd)
ptn 3 name='system' start=0xF70800 len=0x10678800(~268770KB)                    
ptn 4 name='userdata' start=0x115E9000 len=0x402B9400(~1051365KB)               
ptn 5 name='cache' start=0x518A2400 len=0x833C400(~134385KB)                    
ptn 6 name='fat' start=0x59BDE800 len=0x91E88400(~2390561KB)                    
Insert a OTG cable into the connector! 

6) If you plug in the USB Cable, you are ready to send binary file to Odroid.

7) Open another Terminal window and You can check whether USB connection is correct or not with lsusb command.
$ lsusb
Bus 007 Device 002: ID 0566:4002 Monterey International Corp. 
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 003: ID 04fe:0006 PFU, Ltd 
Bus 005 Device 002: ID 04fe:0008 PFU, Ltd 
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 0403:6001 Future Technology Devices International, 
Ltd FT232 USB-Serial (UART) IC
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 18d1:0002 Google Inc. <=== OK!!!
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$

8) If you want to update KERNEL, you have to write down below the command.

$ sudo /home/neal/bin/fastboot flash kernel zImage 

Note : zImage is your KERNEL image file that will be write 
to your Odroid-A

9) After downloading, PC will show the below message.
$ sudo /home/neal/bin/fastboot flash kernel arch/arm/boot/zImage 
    sending 'kernel' (3231 KB)... OKAY [  0.478s]
              writing 'kernel'... OKAY [  0.792s]
finished. total time: 1.270s
$ 

10) After downloading, Serial terminal will show below message.
HKDKC210 # fastboot                                                             
[Partition table on MoviNAND]                                                   
ptn 0 name='bootloader' start=0x0 len=N/A (use hard-coded info. (cmd: movi))    
ptn 1 name='kernel' start=N/A len=N/A (use hard-coded info. (cmd: movi))        
ptn 2 name='ramdisk' start=N/A len=0x300000(~3072KB) (use hard-coded info. (cmd)
ptn 3 name='system' start=0xF70800 len=0x10678800(~268770KB)                    
ptn 4 name='userdata' start=0x115E9000 len=0x402B9400(~1051365KB)               
ptn 5 name='cache' start=0x518A2400 len=0x833C400(~134385KB)                    
ptn 6 name='fat' start=0x59BDE800 len=0x91E88400(~2390561KB)                    
Received 17 bytes: download:00327c54                                            
Starting download of 3308628 bytes                                              
...                                                                             
downloading of 3308628 bytes finished                                           
Received 12 bytes: flash:kernel                                                 
flashing 'kernel'                                                               
writing kernel.. 1089, 8192                                                     
MMC write: dev # 0, block # 1089, count 8192 ... .8192 blocks written: OK       
completed                                                                       
partition 'kernel' flashed
 


12) If you want to update RAMDISK, you have to write down below the command.

$ sudo /home/neal/bin/fastboot flash ramdisk ramdisk-uboot.img

Note : ramdisk-uboot.img is your RAMDISK image file that will be write 
to your Odroid-A

13) After flash them all, reboot command will rebooting.

$ sudo /home/neal/bin/fastboot reboot

Note: But this version can not reboot. 
We recommend that input "Ctrl + c", after input command "boot" will be process to booting

9.6 How to be a developer for this project

If you want to join this project, please email me(ruppi.kim at hardkernel.com) your id.

Or, leave a message on the board with the following information.

Title: Want to be a member.

ID: (Your login ID)

Description: Brief introduction

After the registration process, you can commit source with git and modify Wiki pages

10 ODROID-A & 7 & PC Android(Gingerbread) System