2009년 6월 8일 월요일

닌텐도 DS의 또 다른 활용, DSerial Edge (DSerial Edge for NDSL homebrew hardware interface)

이전 포스트에서도 한번 소개했던 보드인데 그 동안 진화를 거듭해서 DSerial -> DSerial 2 -> DSerial Edge ($79) 가 나왔다.



이전 버젼들과 가장 달라진 것은 가속도 센서가 빠지는 대신 microSD 슬롯이 추가된 것이다. 이 달라진 점이 이전 버젼과 비교해서 큰 차이를 만든다.

DSerial은 slot 1(NDSL의 위쪽에 있는 작은 슬롯)을 사용하는데 그렇게 되면 자신이 만든 homebrew 소프트웨어를 실행하기가 힘들어진다. Slot 2용 CF/SD 카드 아답터가 있기는 해도 이 경우 역시 slot 1에 superkey류를 꼽아줘야만 하기 때문이다. 그렇지 않으면 flashme등을 이용해 플래쉬를 다시 써 줘야 하는데 이 역시 NDSL을 열고 작업을 해야 하고 잘못하면 NDSL을 먹통을 만들어 버릴 수도 있다.
그에 비해 DSerial Edge는 microSD/microSDHC 슬롯을 포함하고 있고 superkey의 역할도 같이 해 주기 때문에 별도의 slot 2 아답터들이 필요없이 자신이 작성한 homebrew 소프트웨어를 그냥 microSD 카드에 복사한 다음 DSerial Edge에 꼽아주기만 하면 되기 때문에 경제적이면서도 매우 편리하다.



DSerial에는 48MHz로 동작하는 8051 코어를 사용한 Silicon Laboratories C8051F34A이 들어있어 이 프로세서는 NDSL과 SPI통신을 한다. 제공되는 라이브러리를 통해 NDSL에서 이 프로세서의 18개의 GPIO, 2개의 시리얼 포트, PWM, ADC를 직접 제어할 수 있고 또한 Full-speed USB 디바이스로 동작할 수도 있다. 즉 프로그램만 만들어 주면 PC의 USB 포트에 연결해서 PC의 주변기기로 동작하게 해 줄 수도 있다. 예) NDSL을 컴퓨터의 타블렛으로 동작 또는 컴퓨터의 소형 보조 모니터로 동작하기 등등



제공되는 DSerial 라이브러리를 사용하는것 외에 DSerial Edge의 8051 프로세서 펌웨어 소스코드도 제공해 주기 때문에 펌웨어를 직접 수정할 수도 있다.
또한 조만간 GDB를 통해 remote debugging을 할 수 있도록 지원될 예정이다.

NDSL프로그래밍 환경으로는 devkitPro가 있다. GCC기반 툴로 무료이고 devkitARM (NDS/NDSL 개발용), devkitPPC (게임큐브 개발용), devkitPSP (PSP 개발용)가 있으며 윈도우, 리눅스, Mac OS X 모두에서 사용할 수 있다. 윈도우용의 경우 별도의 installer를 제공해주고 있고 현재 Mac OS X 10.5.7에 설치해서 테스트 해 보았는데 아무 문제없이 잘 실행된다.

devkitARM의 경우 NDS용의 다양한 라이브러리(libnds, default_arm7, maxmod, libfat, libfilesystem, dswifi)를 제공한다.

최근 physical computing쪽에서 아뒤노를 많이 사용하는데 NDSL+DSerial Edge 조합도 충분히 고려해 볼만하다. 저렴한 가격에 충실한 입출력(2개의 액정화면, 터치패드 및 가상 키보드, 무선랜, USB까지 달려있는 유저 인터페이스면 단순히 아뒤노만으로 하기 힘든 다양하고 재미있는 일들을 더 많이 할 수 있다.

또한 C/C++ 프로그래밍에 익숙하지 않은 사람들은 NDSL용 LUA를 사용할 수도 있다. LUA는 매우 쉽고 편리한 스크립트 언어로 금새 배울 수 있다. 인터넷에 보면 컴퓨터에서 lua 스크립트를 작성하고 ndsl의 버튼을 누르면 무선랜을 통해 그 스크립트를 다운받아 실행하게 해 주는 동영상을 찾아볼 수도 있다. 이 경우 microSD를 꼽고 빼는것조차 필요없이 PC에서 PC용 프로그램 개발하는 기분으로 NDSL용 프로그램을 개발할 수 있다.

댓글 8개:

  1. 닌텐도 단말기 하찮게 봤는데 저런 확장도 되는군요...대단합니다.

    psp는 저런거 없나. psp는 가지고 있는데...^^

    포스팅 잘 보고 갑니다.

    답글삭제
  2. @펩시맨 - 2009/06/09 11:02
    psp는 외부 확장단자가 없어서 저런식으로 확장은 힘듭니다. 헤드폰+리모컨 단자에 리모컨 부분이 실제로 UART포트라 그걸 homebrew에서 시리얼 포트로 사용하긴 하더군요.

    답글삭제
  3. @펩시맨 - 2009/06/09 11:02
    그리고 NDSL이 더 대단한건 멀티코어 시스템이라는 겁니다.

    ARM9+ARM7 형태로 되어 있죠.

    답글삭제
  4. 네 이어폰 단자가 시리얼 포트죠. 그래서 그쪽에 gps좀 연결해 보려구 생각하고 있는데, 커넥터를 찾기가 어렵네요.

    구형은 그래도 구할수 있겠던데 신형은 없더군요

    전에 부품 상가갔다가 물어본다고 하구 시간없어서 그냥 와 버렸다는....

    답글삭제
  5. @펩시맨 - 2009/06/10 09:37
    신형은 어떻게 생겼나 보지를 못했는데 에전에 구형의 경우 양면 동박 기판에다 패턴 그리고 에칭해서 커넥터 만들어 쓰는거 웹사이트를 본 적이 있었습니다.

    답글삭제
  6. 에칭하는 방법이 있었군요...아직 에칭은 한번도 안해봤는데...

    두께도 맞아야 겠네요...



    신형은 핀이 한줄 더 있습니다. 양면으로 치면 핀2개가 더 있는 거죠

    답글삭제
  7. 뒤늦게 NDSL homebrew에 관심을 가지고있습니다. Dserial Edge 구매는 어떻게 하는지요?

    그리고 NDSL + dserial edge + micro sd 로 리눅스 포팅 가능할런지..

    초보라.. 정보는 많이 보이는데 선별 능력이 부족하네요 ^^;

    답글삭제
  8. @21세기탐구생활 - 2009/06/13 22:41
    NDSL용 리눅스는 이미 나와 있습니다. 다만 리눅스를 제대로 활용하려면 Slot 2에 꼽는 램 확장 팩을 꼽아주는게 좋습니다.

    답글삭제