BUS PIRATE FIRMWARE update (V.0C), JTAG and much more

Download: buspirate.v0c.zip

A few weeks ago we wrote about our Bus Pirate universal serial interface tool. We used the recent holiday to add some new features, like a JTAG programmer, macros, frequency measurement, and more. A major code reorganization makes everything simpler to read and update.

Check out the a demonstration of the new features below. We’re compiling a roadmap and wish list, so share your ideas in the comments. You can also see how we used the Bus Pirate to read a smart card and test-drive an I2C crystal oscillator.

New protocols

I2C>m <–setup mode 1. HiZ <– high impedance pins (safe mode) 2. 1-WIRE <– not ready for this release 3. UART. 4. I2C. 5. 스파 6. JTAG <– interface and programmer 7. Raw2wire. 8. raw3wire. MODE>1
900 모드 설정
HiZ>

This firmware release lists three new protocols.

Hi-Z makes all pins high impedance/input, a safe state that won’t damage an attached circuit. To be safe, the Bus Pirate now starts in this mode.

1-Wire is listed, but we couldn’t include it in this release because we still don’t have any parts to test with our library. This is just a placeholder for now, but it will be added as soon as we get a 1-Wire part to test.

We wrote a simplified JTAG interface that includes a XSVF player for programming JTAG device chains.

**We included a hardware I2C library, but according to the device errata there’s a bug in the 24FJ64GA002 rev3 I2C module. This will work with a different chip (e.g. a 28pin dsPIC33).

Connection table

1-Wire

I2C*

SPI**

RS232

JTAG

B9

SDA.

SDA.

MOSI

TDI

B8

SCL.

CLK

TCK

B7

MISO

RX

TDO

B6

CS

TX

TMS

B5

AUX

AUX

AUX

AUX

AUX

지면

GND.

GND.

GND.

GND.

GND.

*also raw 2 wire. **also raw 3 wire.

The new modes connect to the Bus Pirate as described in the table.

New features and settings

Frequency measurement

HiZ>F <– do a frequency count 9xx FREQ count ON AUX: 22199552Hz (22MHz) HiZ>

As seen in the DS1077 demonstration, we added a frequency counter to the Bus Pirate’s AUX pin.  ‘F’ steps frequency, maximum of about 50MHz.

Assign axillary control

HiZ>c <– menu c AUX PIN 1. AUX (DEFAULT) 2. CS/TMS MODE>1 <– set AUX control mode 9xx AUX: DEFAULT setting (AUX PIN) HiZ>

Sometimes we need to control the chip select (CS) /JTAG state device (TMS) pins manually. ‘c’ toggles the pin control between the axillary pin and the chip select pin.

Set terminal speed

HiZ>b <– menu b Set serial port speed: (bps) 1. 300 ...에 ... 9. 115200 SPEED>9 <– set speed Adjust your terminal and press space to continue HiZ>

‘b’ adjusts the PC-side serial port speed.

Macros

A new syntax addition, ‘(#)’, triggers protocol dependent macros.

JTAG>(0) <–macro 0 0.Macro 메뉴 1.Reset chain 2.Probe chain 3.XSVF player JTAG>

In any mode, use the macro (0) to display a menu of available macros.

I2C address search

I2C>(1) <–scan I2C addresses macro XXX 7 비트 I2C 주소 공간을 검색합니다. 에서 장치를 찾았습니다. 0xB0 0xB1 <–DS1077 responds to write and read address I2C>

The I2C library includes a macro to automatically search the I2C address range for devices. helpful when you work with an unknown chip.

Raw2wire smart card ISO 7813-3 ATR

RAW2WIRE>(1)<–ATR and decode macro ISO 7813-3 ATR 950 AUX LOW 951 AUX HIGH 4xx RAW2WIRE 0x01 CLOCK TICKS 950 AUX LOW ISO 7813-3 reply: 0xA2 0x13 0x10 0x91<–ATR bytes Protocol: 2 wire <–decoded ATR data Read type: to end<– Data units: 256 <– Data unit length: 8 bits <– RAW2WIRE>

Macro 1 resets and identifies a smart card. For much more about the ISO7813-3 ATR, see how we used the Bus Pirate to read a smart card.

JTAG

JTAG is a debugging and programming interface for all kinds of electronics. The raw hardware interface can be accessed with the Bus Pirate’s raw 3 wire library, but we added a few features to make it much easier.

JTAG has different modes where data entry does different things. Modes are navigated with the JTAG TMS signal; there are a bunch of JTAG modes, called states.The Bus Pirate’s JTAG library is just the raw 3 wire library, enhanced to help with JTAG state changes.

We only implemented the JTAG states we need to get data in and out of a JTAG device chain: reset, idle, data register, and instruction register. Macro (1) issues a JTAG chain reset, and initializes the chain to the idle state. { puts the JTAG chain in data register mode. [ puts the chain in instruction register mode. ] or } return the chain to the idle state. The Bus Pirate has an internal state device tracker that is smart enough to manage the chain without explicitly returning the chain to idle; in other words, you don’t have to close your tags. The state device tracker reports every state change to help debug problems.

JTAG>[0xfe {rrrr} <– same as [0xfe]{rrrr} xxx JTAGSM: already IDLE xxx jtagsm : IDLE-> 명령어 레지스터 (TMS 용 1 비트 지연)
610 JTAG ready TO write IR <– JTAG chain instruction register 620 JTAG WRITE: 0xFE <– request ID xxx JTAGSM: (WROTE 지연된 비트) IR-> 유휴 <-back to Idle xxx jtagsm : IDLE-> 데이터 레지스터 <- 데이터 레지스터에 611 JTAG 준비 준비 / 쓰기 DR. 630 JTAG 읽기 : 0x93 <-device ID. 630 JTAG 읽기 : 0x40. 630 JTAG 읽기 : 0x60. 630 JTAG 읽기 : 0x59. xxx jtagsm : DR-> IDLE <-BACK to IDLE 640 JTAG IDLE. JTAG>

다음은 Xilinx XC9572 CPLD와 짧은 상호 작용입니다. 우리는 명령 레지스터 ([)로 이동하여 장치 ID 요청 명령 (0xFE)을 보냅니다. 그런 다음 데이터 레지스터 ({), 4 바이트 (RRRR 또는 R : 4 속기)를 읽고 유휴 상태로 돌아 가기.

지연된 비트 쓰기는 무엇입니까?

JTAG에서는 명령 레지스터에 기록 된 마지막 데이터 비트가 상태 변경과 동시에 입력해야합니다. 버스 해적은 실제로 상태를 변경할 때 예측 방법이 없기 때문에 세 가지 중 하나가 발생할 때까지 각 바이트 쓰기의 마지막 비트가 지연됩니다.

명령 레지스터를 a},] 또는 {명령으로 종료하십시오.

다른 바이트 값을 씁니다

읽기 명령

보류중인 비트는 비트 연산 (예 :! 또는 ^)에 의해 지워지지 않습니다. 마지막 바이트를 쓰기 전에이 작업을 수행하거나 코드를 변경하십시오. 우리는 데이터 레지스터에 대한 보류중인 기록을 구현하지는 않았지만 아마 필요할 것입니다. 우리가 한 것처럼 데이터 등록을 쓰는 것만 짓는 경우이 문제를 실행해야 할 수도 있습니다.

JTAG 매크로

JTAG> (1) <-macro 1. xxx jtagsm : 재설정 xxx jtagsm : 재설정 -> 유휴
JTAG>

JTAG 매크로 (1) JTAG 체인을 재설정 한 다음 IDLE 상태로 향상시킵니다.

JTAG> (2) <-macro2. xxx JTAG init 체인 xxx jtagsm : 재설정 xxx jtagsm : 재설정 -> 유휴
xxx jtagsm : IDLE-> 명령어 레지스터 (TMS 용 1 비트 지연)
xxx jtagsm : IR-> 유휴
xxx jtagsm : IDLE-> 데이터 등록기
xxx jtagsm : DR-> 유휴
xxx jtagsm : 재설정
xxx jtagsm : 재설정 -> 유휴
xxx jtagsm : IDLE-> 데이터 등록기
XXX JTAG 체인 보고서 : <- 보고서의 시작 0x01 장치 (들) # 0x01 : 0x93 0x40 0x60 0x59 <-device IDS xxx jtagsm : DR-> 유휴
JTAG>

매크로 (2) 체인을 재설정하고 장치를 계산하고 모든 장치 ID를보고합니다.

JTAG> (3) <-macro 3. 6xx JTAG XSVF Player. XXX XON / XOFF 흐름 제어 필수 <- 리드! xxx z를 눌러 계속 <- Z를 누릅니다 xxx begin xsvf 제출 <- 파일을 제출하십시오 6 × 0 XSVF OK <- 결과 또는 오류 PC는 XOFF 후 최대 0x05 바이트를 드리블했습니다 (괜찮습니다) 6xx 계속 <- 계속하려면 5 번 Z를 누릅니다. JTAG>

매크로 3은 자일링스에서 코드를 사용하는 XSVF 플레이어 / 프로그래머입니다. XSVF는 Xilinx (PDF)에서 설명한대로 바이트 형식의 SVF입니다. XSVF 파일은 적절한 일반 JTAG 정의 파일, 심지어 XILINX 장치조차도 컴파일 할 수 있습니다. 우리는 Hercules 및 Tera Term의 바이너리 전송 기능을 프로그래머에게 XSVF 파일을 보내는 데 성공적으로 사용했습니다.

어떤 경우에는 JTAG가 PC가 데이터의 바이트를 전송하는 것보다 오래 일시 중지되므로 XSVF 플레이어에 대한 XON / XOFF 소프트웨어 흐름 제어를 구현했습니다. XSVF 파일을 제출하기 전에 터미널이 XON / XOFF 흐름 제어 모드에 있어야하거나 프로그래머가 실패합니다. 소프트웨어 흐름 제어가 있더라도 현대 PC는 흐름 제어 신호를 수신하기 전에 운영 체제의 레이어를 통해 이미 여러 바이트를 전송했습니다. 우리는이 바이트를 이사하기 전에이 바이트를 잡아서이를 처리합니다. 이것은 최대 바이트 수 “드리블링”으로보고됩니다.

업로드에 오류가 발생하면 PC는 버스 해적에서 바이트를 계속 뱉어 낼 것입니다. 오류 메시지를 표시하고 터미널에서 가비지를 피하기 위해 XSVF 플레이어는 프롬프트로 돌아 오기 전에 5 개의 소문자 Z를 대기합니다. XSVF 파일에서 결코 발생하지 않기 때문에이 순서를 선택했습니다.

* XSVF 플레이어는 JTAG HI-Z 핀 설정을 존중하지 않습니다. 그것이 갔다, 그것은 실패한다. 버퍼없이 조심스럽게 전압을 혼합하십시오.

더 나은 코드 구조

버전 0b와 0C 펌웨어 간의 가장 중요한 차이점은 코드 구조가 엄청난 향상되었습니다. 버스 해적은 초기 기사에 대해 포장하기 전에 수많은 화신으로 존재했습니다. V.0C는 코드 라이브러리를 조화시키고 새로운 프로토콜을 더 간단하게 만듭니다.

사용자 정의 프로토콜을 추가하는 방법

버스 해적 코드는 사용자 인터페이스를 처리하고 두 변수를 활성 프로토콜 라이브러리에 전달합니다. 첫 번째 변수는 cmd_read, cmd_readbulk 또는 cmd_write와 같은 명령입니다. 전체 명령 세트는 BASE.H에서 정의됩니다. 두 번째 변수는 선택적 값입니다. 쉬운 cmd_read 명령이 값을 전달하고, 대량 읽기 명령은 바이트 수를 전달하고, 쓰기 명령은 버스에 쓰기 위해 값을 전달합니다. 최소한이 변수를 수신하고 번역하는 기능이 필요합니다. 버스 조치에.

우리는 버스 조치에 명령을 연결하기 위해 세 가지 기술을 사용했습니다. 쉬운 코드는 spi.c와 같은 거대한 switch 문에서 직접 이동할 수 있습니다. 외부 라이브러리 I2C.C 및 M_I2C_1.C와 같은 단일 링크 기능을 사용합니다. 훨씬 더 복잡한 프로토콜은 스위치 문을 사용하여 라이브러리에 포함 된 함수를 호출합니다 (RAW2Wire.c, raw3wirec, jtag.c uart.c). 터미널 IO에 대한 유용한 기능은 base.h / c에 포함됩니다.

대규모 코드 개선으로 인해 버스 해적이있는 새로운 프로토콜을 등록하기 위해 가볍게 혼란스러워합니다.

base.h – D를 만듭니다프로토콜에 대한 에이시션. 마지막 항목은 현재 “#define raw3wire 7″이므로 다음 항목은 “#define mycustomwire 8″일 수 있습니다.

buspirate.c – 처리 기능에 액세스 할 수있는 헤더 파일을 포함합니다. char * mode [] = 변수 목록에 메뉴 항목을 추가하십시오. 메뉴 항목은 Degy.h 정의에 할당 된 번호와 동일한 위치에 있어야합니다. myCustomwire가 8 숫자 인 경우 모드 변수의 8 개의 항목이어야합니다. 마지막으로 모드가 “MyCustomWire”로 설정된 경우 사용자 지정 라이브러리 처리 루틴을 호출하는 BPProcess () 함수에 추가 스위치를 추가하십시오.

그것을 더 멀리 : 하루 하루에 해킹 목록

우리는 프로토콜, 기능 및 매크로의 세 가지 위시 목록으로 얻은 의견을 수집했습니다.

프로토콜

열거 형 (* 테스트 할 부분이있는 즉시 준비가 된 경우) 1-Wire

OBD-II (감사합니다 [Shadyman])

할 수있다

미디 (위키피디아)

DMX512-A.

Irda, RC5x 등

일부 프로토콜에는 외부 트랜시버가 필요합니다.

특징

펄스 폭 변조기, 주파수 발생기

“인터럽트까지 기다림”명령

주파수 측정을 입력하여 캡처 주변 장치를 변환합니다

모든 PIN에서 주파수 측정을 허용합니다

현재 구성 설정 및 PIN 상태에 대한 보고서를 보여줍니다.

벌크 읽기, 클록 틱, 지연 등에 대한 정수 반복 값

CRC 생성기

매크로

투명 UART 다리

SD 카드 초기화, 메타 데이터 추출 및 덤프

EEPROM 프로그램 / 덤프 (I2C / SPI)

노키아 6100 LCD 초기화, 제어

NMEA GPS 데이터 디코더

목록에 추가 할 것이 있습니까?

펌웨어 다운로드 : buspirate.v0c.zip.

작은 맞춤 테이블 톱

이 작은 부분으로 작업하는 경우 집 창고 또는 저에서 제공되는 가장 작은 테이블 톱조차도 일반적으로 과도한 것입니다. 나무, 금속, 구리 클래드 보드뿐만 아니라 마이크로 테이블 톱은 환상적인 투자입니다. 그들은 정말로 저렴하지만, 시장에서 어떤 종류의 디자인보다 훨씬 낫습니다.

침대는 1/15 마력 모터가 밑면에 볼트로 고정 된 1/4 “알루미늄 플레이트로 구축됩니다. 울타리는 델린 브래킷의 한 쌍으로 테이블에 클램프하고 델리 린과 테이블의 슬롯에 맞는 황동 바뿐만 아니라 탈지 가이드가 만들어집니다.

실제 블레이드는 Proxxon 마이크로 테이블 (우리의 경험에서 매우 훌륭한 브랜드)에서 왔지만,이 수제 톱을 산업용 톱으로 비교하는 것은 몇 가지 놀라움을 제공합니다 : Proxxon은 더 강력한 모터를 가지고 있지만 홈 덤불 버전에는 4 배나 절단 용량. 휴식 후 비디오의 1/4 “알루미늄 바를 절단하는이 톱을 검사 할 수 있습니다.

이것을 보내는 것에 대해 [Hubert] 감사합니다.

USB 키보드

용 나무 치아는 처음으로 인체 공학적 키보드가 있으며 절대적으로 좋아합니다. 그러나이 키보드 해킹의 모습은 우리에게 두 번째 추측을하고 있습니다. [척 할 것인가] 그의 USB 키보드를위한 절대적으로 감각적 인 목조 개조를 뽑았습니다. 경고를 받아야합니다. 그의 직업 로그에는 175 개의 사진이 있으며 많은 사람들이 자막이 있습니다.

그는 그가 일하는 것을 볼 수 있도록 원래의 USB 키보드를 털어 내면서 시작했습니다. 유용한 목재 주식에 파고하기 전에 그는 얇은 MDF를 사용하여 테스트 조각을 자릅니다. 그러나 그가 직업의 끝까지 가기위한 계획을 제거 할 계획이었을 때 앞으로 완전한 줄기였습니다.

비밀은 기본 chicklet 스타일 오버레이가 아니며 저급 플라스틱 주변 장치에서 발견 할 것으로 예상되는 깊이가 있습니다. 이것은 각 키를 밀링 한 다음 레이저 커터를 맨 위에있는 모든 문자로 보내는 것으로 수행되었습니다.

전체 직업으로 귀하의 방법을 만드는 데 오랜 시간이 소요됩니다 (여기서 좌절하면 미리보기 이미지 디자인이 있습니다). 유감스럽게도 [의지]는 곡물을 잡는 곡물뿐만 아니라 비밀을 조금뿐만 아니라 비밀을 잡는 것 때문에 키보드를 실제로 활용하지 못한다. 그러나 그것은 일을합니다.

전기 잠금 장치를 업그레이드하십시오

[OldGrover]는 Weiser 전자 자물쇠를 샀습니다. 설치 후 6 개월 만에 키패드가 작동을 멈췄습니다. 이를 수락하는 대신 [OldGrover]는 잠금을위한 더 나은 버튼 패드를 만들었습니다. 그는 주식 멤브레인 시스템과 유사한 푸시 버튼을 사용하기로 결정했습니다. 원래 버튼이 연결된 위치를 추적한 후에 그는 새로운 버튼과 인클로저를 첨부했습니다. 꽤 간단하지만 문제가 해결되어 매립지에서 잠금을 지켰습니다. 자, 그는 자신의 정문에 독특한 키패드를 가지고 있습니다.

더 많은 아세톤 – 증기 연마 실험

3D 인쇄 된 물체를 부드럽게하기 위해 아세톤 증기 연마 공정을 시도하는 것이 생각하면 단순히 [크리스토퍼의] 실험을 진행해야합니다. 그는 며칠 전에 우리의 기능에서 우리의 기능으로부터 프로세스에 대해 알아 냈고 다른 인쇄 모델에서 일련의 실험을 수행하기로 선택했습니다.

그 결과를 섞였다. 그는 원래의 제물과 거의 같은 방식으로 그 과정을 수행했습니다. 위에 본 두개골은 그 과정으로 무엇을 얻을 수 있는지를 보여주는 좋은 일을합니다. 매끄러운 광택 마감이 있으며 [크리스토퍼]는 세부 사항이 없어지고 있다고 생각합니다. 그러나 그가 평가 한 세 모델 중 하나는 증기의 영향을받지 못했습니다. 그는 그것이 조금 더 빛나는 것이 아니라 공정을 두 번 통과 한 후에도 두개골만큼이나 거의 없었습니다. 우리는 왜 어떤 토론을하는 이유를 듣고 싶습니다.

프로젝트 게시물과 함께 사용할 비디오의 약 8 분이 있습니다. 점프 후에도 찾을 수 있습니다.

스크래치 개발 공기 근육

우리는 2005 년에 공기 근육에 대해 처음으로 얘기하여 그림자 로봇의 손을니다. 공압 가젯은 경량뿐만 아니라 호환되는 것으로 이해됩니다. 그들은 다리뿐만 아니라 로봇 팔에 활용되도록 설계되었습니다. [jelengar]이 가이드를 통해 자신의 공기 근육을 만드는 데 걸쳐 비틀었다. 우리는 기계 번역처럼 읽을 수 있기 때문에 원래 소스가 무엇인지 정확하게 확신하지 못합니다. 코어는 수족관에서 사용되는 실리콘 튜브의 조각입니다. 볼트가있는 한쪽 끝에 봉인됩니다. 꼰된 전기 외장은 튜브 위에 끈을 끈뿐만 아니라 24gauge 와이어의 여러 줄무늬를 사용하여 보안을냅니다. 그들은 20psi를 사용하는 테스트를 진행하지만 한계가있는 것에 대한 언급은 없습니다.

TTL

의 8 비트 전송 트리거 된 아키텍처 CPU 마이크로 프로세서의 내부에 도입 될 때는 8 비트 CPU의 첫 번째 생성 중 하나와 같은 것으로 표시 될 가능성이 높습니다. 1970 년대. 리지터 및 카운터 그룹, 산술 및 논리 단위 (ALU) 및 관련 제어 로직이있는 명령 디코더가 익숙합니다. 복잡한 지시 세트는 디코더가 이상적으로 모든 다양한 기능을 수행하기 위해 디코더가 등록 및 ALU로 만듭니다. CPU는 1970 년대를 고려하여 많은 방법으로 이동했을 수 있지만 8080 또는 유사한 블록 다이어그램은 여전히 ​​초급에 대한 기본 접지를 제공합니다.

따라서 TTL 로직 칩을 사용하여 다른 집에서 만든 CPU에 대해 알려줍니다.이 잘 착용 된 경로를 따를 것으로 기대할 수 있습니다. 운 좋게도 하드웨어 해킹 커뮤니티는 항상 우리에게 놀라움을 낼 수 있으며 [szofteres]는 자신의 디자인과 함께 그만 뒀습니다. 이는 전송 트리거 아키텍처 다음에 하나의 명령어 세트 제조 업체이며 위에서 설명한 기존 아키텍처에서 급격히 벗어나는 것을 나타냅니다. 각 명령어는 프로세서의 서로 다른 물리적 기능 간의 단계이며, 데이터에서 작동하는 물리적 함수에 의해 계산을 수행하고 결과를 출력 준비가 다른 곳에서 옮길 준비가되었습니다. 그 결과는 훨씬 더 많은 기존 프로세서에서 승인을 얻기 위해 취한 일부 유연성 및 일부 하드웨어 기능이 없지만 자체적으로 간단한 컴퓨터입니다.

이 메이커는 스트리밍 보드에 지어졌으며 디스플레이, 키패드 및 모뎀이있는 첨부 된 이사회가 있습니다. 빠른 프로그램 로딩 기능을 수행하는 ATMEGA8 마이크로 컨트롤러에 기반한 작은 보드가 있으며 코드가로드되면 제거 할 수 있습니다. 소프트웨어는 GitHub 저장소에서 컴파일러를 사용하여 컴파일 된 C 형 언어 ANC로 작성할 수 있으며, 그는 제조업체의 YouTube 비디오를 작성했습니다. 이 프로젝트는이 약간 비정상적인 아키텍처를 도입하기 위해 심층적으로 읽을 가치가 있습니다.

우리는 당신에게 수년 동안 많은 74 개의 TTL 로직 CPU를 가져 왔지만 놀랍게도이 첫 번째 수업 설계는 아닙니다.

Cloud Mirror

Cloud Mirror는 정품 시간에 인터넷 정보에서 신속하게 제공되는뿐만 아니라 당신이 결합한 대화 형 아트 설치입니다. 손님들은 카메라 앞에서 배지뿐만 아니라 배지를 개최했습니다. 클라우드 미러는 벽에 투사하고 웹에서 정보가 들어있는 연설 거품을 표시 할뿐만 아니라 벽에 투사했습니다. 휴식 후 예제에서는 가장 최근의 Twitter Post로 매우 소유 한 [Eliot]를 볼 수 있습니다. 하나 이상의 레이어를 추가하려면 누군가의 배지 ID가있는 텍스트 메시지를 시스템에 보낼뿐만 아니라 그 사람의 거품에 메시지를 화면으로 표시 할 수 있습니다.

마이크로 웨이브 타이머 스위치

[KOIL_1] 그는 그가 잊어 버릴 것을 압니다. 과도한 해를 입히거나 아마도 그의 집을 불타는 것에서 지키기 위해 구입하여 그는 납땜 인두를 운영하기 위해 시간 초과 된 전원 스위치가 필요하다고 느꼈습니다. 그는 릴레이와 타이머 회로를 전자 레인지에서 수확 할 수 있다는 것을 깨달았습니다. 이를 통해 그를 특정 작업에 사전 설정할 수 있습니다. 많은 시간에 완전히 무료이거나 가까이에 사용 된 전자 레인지를 얻을 수 있다는 사실을 고려하면 그렇지 않으면 낭비 할 수있는 뭔가를 훌륭하게 사용했습니다. 훌륭한 일 [KOIL_1].

태양열 충전 DS

[Dark Sponge] 그의 DS Lite를 만들기 위해 선택했습니다. 또는 적어도 태양 전지 패널을 통해 충전됩니다. 그는 60 × 60 mm이었던 태양 전지를 발견 할 수 있었는데, 이는 DS 외부에 4 명이 적합 할 수 있다는 것을 의미합니다. 이것은 80 mA 출력에서 총 6V를 제공합니다. 이 패널은 용도 사이에서 배터리를 충전합니다. DS는 노출 될 모든 4 개의 패널에 대해 모든 4 개의 패널에 대한 얼굴에 놓여 있어야하지만, 이들을 장착하는 방법은 장치의 포켓 능력을 변경하지 않았습니다. 그는 잠시 동안 그것을 사용하고 있지 않고 아직 플러그하지 않아도되었지만 패널을 배터리로 직접 배선하는 데 문제가 있습니다. [CYROZAP]가 지시에 대한 의견을 지적한 것처럼, 이것은 리튬 이온 배터리이며 일부 충전 회로가 관련되어서는 안됩니다.