2012-07-19 5 views
5

Nexus 7과 Galaxy Nexus에 ADK 액세서리를 연결했는데 "기기 프로토콜 버전을 읽을 수 없습니다"라는 메시지가 표시되지 않았습니다. 이사회가 사망하여 ICS로 넥서스 S와 연결되었다고 생각한 것은 정상적으로 진행되었습니다. Jelly Bean을 업그레이드하기 전에 Galaxy Nexus에서도 작업 했으므로 하드웨어 오류가 배제 될 수 있습니다.ADK 1.0 장치가 Jelly Bean과 함께 작동하지 않는 이유는 무엇입니까?

나는 ADK 공지 사항을 거의 면밀히 보았지만이 특별한 변화 나 ADK 2.0을 지원하는 Android 기기의 이전 버전과의 호환성에 대해 읽거나 듣지 않았습니다.

Accessory Development Kit 2011 가이드는 "프로토콜 버전 1은 Android 2.3.4 (API 레벨 10) 이상에서 지원되며 프로토콜 버전 2는 Android 4.1 (API 레벨 16) 이상에서 지원됩니다"라고 말하지는 않습니다 1은 이 아니고, 4.1에 의해 지원되는이 아니며, 기존 하드웨어가 그렇게 버려진다는 것을 발견하는 것은 상당히 기이합니다.

무엇이 여기에 있습니까? 버그 또는 기능입니까?

+0

동일한 문제가 있습니다. Jellybean이 Nexus 7에 연결될 때 미디어 장치로 식별되기 전에 모든 것을 잘 수행하는 USB 액세서리. – Snowwire

+0

4.1 두 장치가 4.1로 실행되는 내 ADK2011 (논란의 여지는 있지만 "ADK 액세서리"를 시험해 보았습니다. Galaxy Nexus와 Nexus 7을 모두 지원합니다. 작동하지 않는 것보다 더 많은 상황을 제공 할 수있는 방법이 있습니까? 소스 코드/오류/로그/문제를 나타내는 것은 무엇입니까? – machinaut

+0

@ajray : 문제의 코드는 https://github.com/home-climate-control/arduino에 있습니다. 공개적으로 사용할 수있는 코드의 출처가 공개되어 있습니까? –

답변

5

작년에 출시 된 ADK1 라이브러리는 JellyBean 장치 (Android 4.1 이상)가 말하는 새로운 AOA v2 프로토콜을 인식하지 못합니다. 이 문제는 업데이트 된 ADK1 라이브러리 릴리스에서 수정되었습니다.

가서 새로운 ADK1 라이브러리를 얻을 :

업데이트합니다 ADK 라이브러리 (우편 다운로드에서 "release_20120606"이상 확인)하고 ADK1 스케치를 업로드 할 수 있습니다. 새 라이브러리는 Arduino 1.0 이상에서 작동하도록 업데이트되었으므로 아마도 Arduino IDE도 업데이트해야 할 것입니다.

+1

실제 상황인지 확인할 수 있다면 Android 4.1에 대한 버그로 제출해야합니다. Android 4.1은 문서와 모순되며 실제 제품에서 인터페이스의 유용성을 없애기 때문에 Android 4.1에 대한 버그로 제출해야합니다. –

+0

@Chris : 그것은 기능이라고 부를 수있는 버그라고 생각합니다. adk_release_0512.zip의 Arduino.ccp는 프로토콜 1 이외의 다른 것을 말하는 것을 분명히 거부합니다. 제시된 프로토콜 번호를 인쇄하기위한 사소한 변경은 JellyBean 장치가 버전 2를 제공한다는 것을 나타냅니다. release_20120606은> = 1을 이해하는 것으로 보이지만, ADK 1.0에 부합하는 모든 기존 장치의 먼지 이미 배송 및 도달 범위 밖에있는 기기의 펌웨어를 수정하는 행운을 빕니다. ADK 팀의 예지력 부족을보고 기분이 상쾌합니다. –

+0

나는 Google이 ADK 용 USB 인터페이스를 유지하는 것에 지나치게 관심이 없다는 것을 분명히하고 있다고 생각합니다. 올해 Google IO에서 프리젠 테이션을 보았다면 청중 질문에 흥미로운 대답을했습니다. 36m30s, http://www.youtube.com/watch?v=ZUaKSs3utrs – Snowwire

2

@Chris Stratton에 대한 답으로, 원본 라이브러리는 향후 호환성을 염두에두고 작성된 것이 아닙니다.

원본 라이브러리는 향후 프로토콜 버전이 역 호환되지 않을 것이라고 가정합니다 (protocol == 1 확인 : switchDevice()). 20120606 라이브러리 버전 (수정 된 protocol >= 1 검사의 의미로 switchDevice()에 있음)에서 향후 라이브러리 버전이 이전 버전과 호환 될 예정인 것으로 나타났습니다.

이는 불행히도 원래 버전의 라이브러리로 컴파일 된 기존 펌웨어가 Jelly Bean 장치와 호환되지 않음을 의미합니다. 펌웨어를 새 라이브러리 버전으로 다시 컴파일하고 액세서리에 다시 업로드해야합니다.

사이드 바에있는 "ADK 패키지"링크가 본문 텍스트에 링크 된 최신 버전이 아닌 이전 라이브러리 버전에 링크되는 문서에 오류가 있습니다. (나는 이것에 대한 버그를 추가 한 : https://code.google.com/p/android/issues/detail?id=35463를)

추가 정보 : http://developer.android.com/tools/adk/aoa2.html#detecting 말한다

  • 하는 것으로 "원래 액세서리 프로토콜을 위해 설계된 액세서리가 여전히 작동하도록 프로토콜의 버전 2.0, 상향 호환 새로운 안드로이드 기기들과 함께. " 그러나 이것은 원래 라이브러리의 문제를 무시합니다.

  • 참고도 http://developer.android.com/tools/adk/adk.html#start-adkhttp://developer.android.com/tools/adk/aoa2.html#detecting 모두에서 코드는 protocol >= 1 주문을 사용하는 것이. (나는 원래 라이브러리 내가 ADK2011 문서는 새 수표를 사용하도록 업데이트되었습니다 생각 수표의이 버전을 사용하지 않은이를 확인하지만, 주어진 수 없습니다.) 나는 이전을 실행하는 관리가

1

제 젤리 빈 장치로 ADK하세요. 4.1.1

단계로

  • 삼성 갤럭시 S3 아두 이노 메가 ADK 사자
  • 맥 OS 마운틴에서 실행

    • : 여기에 세부 사항입니다

      1. 다운로드 darduino -1.0.1-macosx
      2. Documents/Arduino 폴더를 비우십시오.
      3. 폴더 라이브러리를 만듭니다.
      4. labs.arduino.cc/uploads/ADK/GettingStarted/ArduinoADK-beta-001.zip에서 USB compatibilty 파일을 다운로드하십시오.
      5. 압축을 푼 후에 ArduinoADK-beta-001/libraries/UsbHost 폴더를 위에서 언급 한 라이브러리 폴더로 복사하십시오.
      6. AndroidAccessory 폴더를 가져 와서 라이브러리에 복사하십시오. Soory, 나는 내가 어디에서 왔는지 기억해. Accesory가 무엇인지 알고 있기 때문에 코드를 컴파일 할 수 있어야합니다. 이 폴더는 특히 AndroidAccessory.cpp 및 AndroidAccessory.h
      7. 시작 Ardoinu를 포함하고 (예를 들어이 포함 definces은, 코드 형식을 표시하지 않습니다 전에 #를 넣으십시오) 보드에 코드를 업로드 :

        포함 < Max3421e.h> 은 <을 포함합니다. Usb.h> 은 <을 포함합니다. AndroidAccessory.h> define ARRAY_SIZE 12;

        AndroidAccessory acc ("제조업체", ​​"모델", "설명", "버전", "URI", "일련");

        char hello [12] = { 'h', 'e', ​​'l', 'l', 'o', '', 'w', 'o', 'r', 'l' '디'};

        void setup() { Serial.begin (115200); // acc.powerOn(); acc.begin(); }

        공극 루프() {

        는 경우 (acc.isConnected는()) { 대해 INT (I = 0; I < (12) 내가 ++) { Serial.print (헬로 [I]); 지연 (250); }

        Serial.println(); 지연 (250); } }

        1. USB를 통해 S3를 연결하는 경우 직렬 모니터에서 출력을 볼 수 있습니다.

      안부 FL

  • 관련 문제