Top.Mail.Ru
Перейти к содержанию

Logitech G25 / G27 - перенос кнопок с шифтера на руль (в процессе)


RomanST

Рекомендуемые сообщения

Данная тема предназначена для тех, кто не пользуется шифтером и хотел бы перенести кнопки с шифтера на руль. Всё, что здесь описано, исключительно на ваш страх и риск, если вы спалили свой руль, квартиру и собаку - я здесь ни при чем, я предупредил!

 

Итак, начнем!

 

Контакты разъема DB9 (G27):

1 SPI Clock / Button Clock				Purple
2 SPI MISO / Serial Button Data		 Gray
3 SPI CS / Shift Register Parallel/Serial Yellow
4 X Axis								 Orange
5 SPI MOSI								Red
6 Ground								 Black/Shielded
7 +5V									 White
8 Y Axis								 Green
9 +5V									 Black

Контакты разъема DB9 (G25, сам не проверял):

1 +5v									 Black?
2 Serial Button Data					 Gray
3 Shift Register Parallel/Serial		 Yellow
4 X Axis								 Orange
5 ??? Red
6 Ground								 Black/Shielded
7 Button Clock							Purple
8 Y Axis								 Green
9 +5V									 Black ?

Разъем от механизма шифтера к плате шифтера (сам не проверял):

5v - yellow
Reverse - Orange
Left/Right - Red
Up/Down - Brown
GND - Black

Напряжение на линиях X Axis и Y Axis (приблизительно):

Gear Red Brown
1st 4v 1v
2nd 4v 5v
3rd 3v 1v
4th 3v 5v
5th 2v 1v
6th 2v 5v
N 3v 3v

Задний ход - кнопка, включено/выключено, если положение рычага не соответствует 6-ой передаче - игнорируется.

 

Схема шифтера G25 (не проверял сам):

 

15hk7td.jpg

 

У G27 внутри примерно то же самое, но маркировка сдвиговых регистров отличается. Кроме того, в шифтере G27 есть SPI EEPROM на 128 байт, содержимое EEPROM:

0x46, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB2, 0x01, 0x7B, 0x91, 0x7B, 0x53,
0x0F, 0x07, 0x1F, 0x3F, 0x5F, 0x7F, 0x9F, 0xBF, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0F, 0x07, 0x1F, 0x3F, 0x5F, 0x7F, 0x9F, 0xBF, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0F, 0x07, 0x1F, 0x3F, 0x5F, 0x7F, 0x9F, 0xBF, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x08, 0x0A, 0x0D, 0x0E, 0x10, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F, 0x21, 0x23, 0x26,
0x28, 0x2A, 0x2C, 0x2E, 0x30, 0x32, 0x34, 0x37, 0x39, 0x3B, 0x3D, 0x3F, 0x41, 0x44, 0x45, 0x47,
0x56, 0x5E, 0x66, 0x6E, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x55, 0xA6, 0x90, 0x90, 0x90, 0x57, 0x7B, 0xFF, 0xFF

В процессе калибровки руля G27 идет чтение EEPROM, в крайних положениях баранки:

 

 

0: RDSR
1: 240
2: READ 120
4: 166
5: READ 0
7: 70
8: 210
9: 0
10: 0
11: 0
12: 0
13: 0
14: 0
15: 0
16: 0
17: 178
18: 1
19: 123
20: 145
21: 123
22: 83
23: RDSR
24: 240
25: READ 121
27: 144
28: READ 16
30: 15
31: 7
32: 31
33: 63
34: 95
35: 127
36: 159
37: 191
38: 223
39: 0
40: 0
41: 0
42: 0
43: 0
44: 0
45: 0
46: RDSR
47: 240
48: READ 122
50: 144
51: READ 32
53: 15
54: 7
55: 31
56: 63
57: 95
58: 127
59: 159
60: 191
61: 223
62: 0
63: 0
64: 0
65: 0
66: 0
67: 0
68: 0
69: RDSR
70: 240
71: READ 123
73: 144
74: READ 48
76: 15
77: 7
78: 31
79: 63
80: 95
81: 127
82: 159
83: 191
84: 223
85: 0
86: 0
87: 0
88: 0
89: 0
90: 0
91: 0
92: RDSR
93: 240
94: READ 124
96: 87
97: READ 64
99: 0
100: 8
101: 10
102: 13
103: 14
104: 16
105: 19
106: 21
107: 23
108: 25
109: 27
110: 29
111: 31
112: 33
113: 35
114: 38
115: RDSR
116: 240
117: READ 125
119: 123
120: READ 80
122: 40
123: 42
124: 44
125: 46
126: 48
127: 50
128: 52
129: 55
130: 57
131: 59
132: 61
133: 63
134: 65
135: 68
136: 69
137: 71
138: RDSR
139: 240
140: READ 126
142: 255
143: READ 96
145: 86
146: 94
147: 102
148: 110
149: 118
150: 0
151: 0
152: 0
153: 0
154: 0
155: 0
156: 0
157: 0
158: 0
159: 0
160: 0
161: READ 112
163: 255
164: READ 113
166: 255
167: READ 114
169: 255
170: READ 115
172: 255
173: READ 116
175: 255
176: READ 117
178: 255
179: READ 118
181: 170
182: READ 119
184: 85
185: READ 120
187: 166
188: READ 121
190: 144
191: READ 122
193: 144
194: READ 123
196: 144
197: READ 124
199: 87
200: READ 125
202: 123
203: READ 126
205: 255
206: READ 127
208: 255

 

 

Последовательность всегда одинаковая, если на команду RDSR (read status register) EEPROM не отдает статус 240 - руль залипает на 1-2 секунды. После окончания калибровки EEPROM больше не используется.

 

Даташит EEPROM: http://www.datasheet...10-RMN6TP.shtml

 

Продолжение следует...

Ссылка на комментарий

Попробую перевести с "французского" :D :

 

Рома делает плату-имитатор блока шифтера логикетов Г25/27 на Ардуине. Ее можно будет воткнуть в разъем для шифтера и руль опознает ее как родную.

Плата маленькая, ее можно сунуть в руль например, или сделать баттон бокс.. словом использовать кнопки с шифтера по своему усмотрению.

 

Но Роман предлагает собирать все это самим... ))

Отсюда вопрос - интересно ли это владельцам Г25/27, и кто из них способен сам все собрать?

Ссылка на комментарий

Попробую перевести с "французского" :D :

 

Рома делает плату-имитатор блока шифтера логикетов Г25/27 на Ардуине. Ее можно будет воткнуть в разъем для шифтера и руль опознает ее как родную.

Плата маленькая, ее можно сунуть в руль например, или сделать баттон бокс.. словом использовать кнопки с шифтера по своему усмотрению.

 

Но Роман предлагает собирать все это самим... ))

 

Почти правильно перевел :) На самом деле ситуация такая, прототип уже делает вид, что работает, но мне бы не помешала помощь в этом вопросе. Кроме того, раньше уже бывало, что я иногда терял мотивацию в середине процесса, если вдруг так случится опять - результаты моего творчества не пропадут (я надеюсь).

 

В любом случае конечный продукт изысканий - готовая плата, которая будет продаваться за огромные бабки :punk: , для тех, кто хочет все готовенькое :lol: А кто хочет попилить немного сам - я только за, глядишь и поможете чем-нибудь... К тому же я сам не настоящий сварщик, ардуину на стройке нашел...

 

 

 

Это у нас типа тестовый скетч для ардуины:

 

 


#define SPI_CS			 10 // SS (D10)
#define SPI_CLOCK	 13 // CLOCK (D13)
#define SPI_SDO_BDATA	 12 // MISO (D12)
#define SPI_SDI		 11 // MOSI (D11)
#define SPI_CS_INVERT 4 // D4

// Digital inputs pins, do not change, it affects the logic!!!
#define BLACK_BOTTOM_B18_PIN 2 // D2
#define BLACK_LEFT_B17_PIN 3 // D3
#define BLACK_RIGHT_B19_PIN 5 // D5
#define BLACK_TOP_B16_PIN 6 // D6
#define RED_LEFT_B1_PIN	 7 // D7
#define RED_RIGHT_B4_PIN	 8 // D8
#define RED_LEFT2_B2_PIN	 9 // D9
#define RED_RIGHT2_B3_PIN 14 // A0
#define DPAD_RIGHT_PIN	 19 // A5
#define DPAD_LEFT_PIN	 16 // A2
#define DPAD_BOTTOM_PIN	 17 // A3
#define DPAD_TOP_PIN	 18 // A4

volatile byte btn[2] = {0, 0};
byte btn_copy[2] = {0, 0};

void setup() {
// have to send on master in, *slave out*
pinMode(MISO, OUTPUT);
pinMode(SPI_CS_INVERT, OUTPUT);

pinMode(BLACK_BOTTOM_B18_PIN, INPUT_PULLUP);
pinMode(BLACK_LEFT_B17_PIN, INPUT_PULLUP);
pinMode(BLACK_RIGHT_B19_PIN, INPUT_PULLUP);
pinMode(BLACK_TOP_B16_PIN, INPUT_PULLUP);

pinMode(RED_LEFT_B1_PIN, INPUT_PULLUP);
pinMode(RED_RIGHT_B4_PIN, INPUT_PULLUP);
pinMode(RED_LEFT2_B2_PIN, INPUT_PULLUP);
pinMode(RED_RIGHT2_B3_PIN, INPUT_PULLUP);

pinMode(DPAD_RIGHT_PIN, INPUT_PULLUP);
pinMode(DPAD_LEFT_PIN, INPUT_PULLUP);
pinMode(DPAD_BOTTOM_PIN, INPUT_PULLUP);
pinMode(DPAD_TOP_PIN, INPUT_PULLUP);

// turn on SPI in slave mode
SPCR |= _BV(SPE);
// turn on interrupts
SPCR |= _BV(SPIE);

digitalWrite(SPI_CS_INVERT, HIGH); // because I use XOR gate :)
PCICR = 7; // enable all 3 PCIE interrupts

*digitalPinToPCMSK(BLACK_BOTTOM_B18_PIN) |= (1<<digitalPinToPCMSKbit(BLACK_BOTTOM_B18_PIN));
*digitalPinToPCMSK(BLACK_LEFT_B17_PIN) |= (1<<digitalPinToPCMSKbit(BLACK_LEFT_B17_PIN));
*digitalPinToPCMSK(BLACK_RIGHT_B19_PIN) |= (1<<digitalPinToPCMSKbit(BLACK_RIGHT_B19_PIN));
*digitalPinToPCMSK(BLACK_TOP_B16_PIN) |= (1<<digitalPinToPCMSKbit(BLACK_TOP_B16_PIN));

*digitalPinToPCMSK(RED_LEFT_B1_PIN) |= (1<<digitalPinToPCMSKbit(RED_LEFT_B1_PIN));
*digitalPinToPCMSK(RED_RIGHT_B4_PIN) |= (1<<digitalPinToPCMSKbit(RED_RIGHT_B4_PIN));
*digitalPinToPCMSK(RED_LEFT2_B2_PIN) |= (1<<digitalPinToPCMSKbit(RED_LEFT2_B2_PIN));
*digitalPinToPCMSK(RED_RIGHT2_B3_PIN) |= (1<<digitalPinToPCMSKbit(RED_RIGHT2_B3_PIN));

*digitalPinToPCMSK(DPAD_RIGHT_PIN) |= (1<<digitalPinToPCMSKbit(DPAD_RIGHT_PIN));
*digitalPinToPCMSK(DPAD_LEFT_PIN) |= (1<<digitalPinToPCMSKbit(DPAD_LEFT_PIN));
*digitalPinToPCMSK(DPAD_BOTTOM_PIN) |= (1<<digitalPinToPCMSKbit(DPAD_BOTTOM_PIN));
*digitalPinToPCMSK(DPAD_TOP_PIN) |= (1<<digitalPinToPCMSKbit(DPAD_TOP_PIN));

Serial.begin(115200);
Serial.print("Ready...\r\n");
}
// SPI interrupt routine
ISR (SPI_STC_vect) {
SPDR = btn[1];
}
ISR(PCINT1_vect) { // pins A0-A5 (14-19)
if (!digitalRead(RED_RIGHT2_B3_PIN)) btn[0] |= (1 << 3); else btn[0] &= ~(1 << 3);
if (!digitalRead(DPAD_RIGHT_PIN)) btn[0] |= (1 << 4); else btn[0] &= ~(1 << 4);
if (!digitalRead(DPAD_LEFT_PIN)) btn[0] |= (1 << 5); else btn[0] &= ~(1 << 5);
if (!digitalRead(DPAD_BOTTOM_PIN)) btn[0] |= (1 << 6); else btn[0] &= ~(1 << 6);
if (!digitalRead(DPAD_TOP_PIN)) btn[0] |= (1 << 7); else btn[0] &= ~(1 << 7);
}
ISR(PCINT0_vect) { // pins D8-D13
if (!digitalRead(RED_RIGHT_B4_PIN)) btn[0] |= (1 << 1); else btn[0] &= ~(1 << 1);
if (!digitalRead(RED_LEFT2_B2_PIN)) btn[0] |= (1 << 2); else btn[0] &= ~(1 << 2);
}
ISR(PCINT2_vect) { // pins D0-D7
if (!digitalRead(BLACK_BOTTOM_B18_PIN)) btn[1] |= (1 << 4); else btn[1] &= ~(1 << 4);
if (!digitalRead(BLACK_LEFT_B17_PIN)) btn[1] |= (1 << 5); else btn[1] &= ~(1 << 5);
if (!digitalRead(BLACK_RIGHT_B19_PIN)) btn[1] |= (1 << 6); else btn[1] &= ~(1 << 6);
if (!digitalRead(BLACK_TOP_B16_PIN)) btn[1] |= (1 << 7); else btn[1] &= ~(1 << 7);

if (!digitalRead(RED_LEFT_B1_PIN)) btn[0] |= 1; else btn[0] &= ~1;
}

void loop() {
// if SPI not active, clear up things
if (digitalRead (SS) == HIGH) {
SPDR = btn[0];
if (btn[0] != btn_copy[0] || btn[1] != btn_copy[1]) {

 Serial.print("B: ");
 for (int i=0; i<8; i++) Serial.print((int)((btn[0] >> i) & 1));
 Serial.print(" ");
 for (int i=0; i<8; i++) Serial.print((int)((btn[1] >> i) & 1));
 Serial.println("");

 btn_copy[0] = btn[0];
 btn_copy[1] = btn[1];
 }
}
}

 

 

Так мы будем имитировать шифтер с помощью подручных средств (Arduino Nano, EEPROM, inverter gate):

post-1173-0-26093400-1463744429_thumb.png

Ссылка на комментарий

У меня кнопки уже давно перенесены. :rolleyes:

 

Угу, причем если посчитать количество кнопок на руле - получается то же самое (6 + 12), что наводит на интересную мысль, что электроника в G29 стоит точно такая же %)

Ссылка на комментарий

Тема интересная,спасибо, Роман.

Угу, причем если посчитать количество кнопок на руле - получается то же самое (6 + 12), что наводит на интересную мысль, что электроника в G29 стоит точно такая же %)

А меня мысль уводит дальше- полагаю, что, если платы электроники идентичны у Г27-29, то проводов в баранку заходит тоже немного. ( используется тот же интерфейс) Это было бы большим плюсом. Посему, было бы интересно в этом убедиться, но, кроме Владимира Озирного это, похоже, не может сделать никто . ) Если бы Володя был электронщиком и имел Г27- мог бы потрудиться на общее благо )

Ссылка на комментарий

Тема интересная,спасибо, Роман.

 

А меня мысль уводит дальше- полагаю, что, если платы электроники идентичны у Г27-29, то проводов в баранку заходит тоже немного. ( используется тот же интерфейс) Это было бы большим плюсом. Посему, было бы интересно в этом убедиться, но, кроме Владимира Озирного это, похоже, не может сделать никто . ) Если бы Володя был электронщиком и имел Г27- мог бы потрудиться на общее благо )

 

Сдвиговые регистры можно в цепочку объединять несколько штук, если там такие же, как в G27 стоят - вместо одного в руле и двух в шифтере будет три последовательно в руле. Количество проводов при этом останется таким же.

Ссылка на комментарий

Сдвиговые регистры можно в цепочку объединять несколько штук, если там такие же, как в G27 стоят - вместо одного в руле и двух в шифтере будет три последовательно в руле. Количество проводов при этом останется таким же.

Но тут по- любому ,видимо,этим ен обойтись.. Прошивки основных контроллеров рулей то разные.. А тут уже ничего не поделать.. Так что, видимо, не судьба.. (?)

Ссылка на комментарий

Вот как то так:

 

 

N59TC.png

 

 

 

Но тут по- любому ,видимо,этим ен обойтись.. Прошивки основных контроллеров рулей то разные.. А тут уже ничего не поделать.. Так что, видимо, не судьба.. (?)

Ничего не понял... :) Что не судьба?

Ссылка на комментарий

Вот как то так:

 

 

N59TC.png

 

 

 

 

Ничего не понял... :) Что не судьба?

Ну прошивки то у рулей Г27 и Г29 разные. Скорее всего и интерфейс с кнопками по- другому реализован. То есть невозможно будет вот так вот просто взять Г27 с его платой , и воткнуть в аналог платы из баранки Г29, просто скопировав его, ( сделав копию в железе)

Ссылка на комментарий

Ну прошивки то у рулей Г27 и Г29 разные. Скорее всего и интерфейс с кнопками по- другому реализован. То есть невозможно будет вот так вот просто взять Г27 с его платой , и воткнуть в аналог платы из баранки Г29, просто скопировав его, ( сделав копию в железе)

Так нельзя конечно, можно по другому, так как я писал в начале темы.

Ссылка на комментарий

А меня мысль уводит дальше- полагаю, что, если платы электроники идентичны у Г27-29, то проводов в баранку заходит тоже немного. ( используется тот же интерфейс) Это было бы большим плюсом. Посему, было бы интересно в этом убедиться, но, кроме Владимира Озирного это, похоже, не может сделать никто . ) Если бы Володя был электронщиком и имел Г27- мог бы потрудиться на общее благо )

Фото нутрянки есть здесь: http://www.edracing....ogitech_G29.php

Плата в руле точно другая, крупнее и все такое - лично я разбирал до съема баранки, причем это оказалось нереально геморройно по сравнению с Г27.

Ссылка на комментарий

Фото нутрянки есть здесь: http://www.edracing....ogitech_G29.php

Плата в руле точно другая, крупнее и все такое - лично я разбирал до съема баранки, причем это оказалось нереально геморройно по сравнению с Г27.

Самого интересного там не видно, маркировки микросхем на плате баранки :) Но кое-какие выводы сделать можно:

 

Количество проводов на плату баранки не увеличилось - скорее всего протокол особо не изменился, можно предположить, что добавили сдвиговых регистров в цепочке и все. Основная плата тоже выглядит очень похоже, видимо, отличия в основном в прошивке.

 

Optional gear shift has no buttons...
  • G27 shifter works, not the buttons.
  • The new buttons on the G29 / G920 wheel face replace the G27 shifter buttons

Теперь там только потенциометры и одна кнопка заднего хода. Кстати, зря они не проверили задний ход на шифтере G27, Думаю, он бы не работал с базой G29.

 

G29 wheel won't run without the electronics in wheel rim being attached.

Понятно, eeprom перенесли в баранку, следовало ожидать.

 

Fewer overall buttons.

G27 (22 total): has 20 buttons and 2 paddles.

G29 (21 total): 17 buttons, 2 paddles and a spin knob.

Spin knob - это 2 кнопки с точки зрения электрики, т.е. тоже 22.

Ссылка на комментарий

Классная тема :)

 

Роман, почему на схеме нарисована atmega328 с обвязкой отдельно, а не просто как один блок Nano? Так запутаннее.

Я так понял используется отдельный внешний eeprom? а почему не собственный ардуинный?

и что за инвертор?

Ссылка на комментарий

Роман, почему на схеме нарисована atmega328 с обвязкой отдельно, а не просто как один блок Nano? Так запутаннее.

Тут вопрос вот какой, если у меня на макетке Nano и отдельно 2 микросхемы в DIP-корпусах - все хорошо и красиво... Но в баранку макетку не засунешь, надо либо делать бутерброд, либо разводить новую плату. И тут начинается трэш и израиль, если все брать в DIP-корпусах - плата получается квадрат 5х5 см, меньше я развести не смог... В итоге наверное придется делать свою плату в мелких корпусах, которая будет не совсем Nano уже.

 

Я так понял используется отдельный внешний eeprom? а почему не собственный ардуинный?

При низком уровне CS работает внешний EEPROM, при высоком - атмега имитирует работу сдвиговых регистров. Т.е. это два отдельных устройства, а SPI в атмеге только один (USART в SPI master не годится). Я не придумал способа использовать внутренний EEPROM...

и что за инвертор?

Ну на макетке у меня вообще сейчас XOR стоит (к155лп5), а вот что будет в конечном варианте... Что-нибудь типа такого: http://www.chipdip.r...rter-4.5-5.5-1/

 

Я у мамы инженер :)

post-1173-0-44975600-1463757623_thumb.png

Ссылка на комментарий

Не обязательно ведь использовать хардварный spi? Можно написать свой обработчик и в зависимости от уровня этого cs делать то или другое. Я сейчас немного занят другим девайсом, но потом обязательно поковыряюсь, интересная тема :)

Не верю я, что все это нельзя реализовать на одной голой ардуине

Ссылка на комментарий

Не обязательно ведь использовать хардварный spi?

Обязательно, можешь не верить :) Там частота сигнала CLOCK на порядок выше, чем атмега может побитово с ног прочитать. Я сначала пытался, дай бог если каждый десятый бит прочитать получалось :)

Ссылка на комментарий

понятно, верю :)

может тогда проще взять что-то помощенее атмеги? Какая там кстати частота клока?

Ну вот есть STM32 дешевый, я давно хотел его попробовать: http://ali.onl/2qb. Только он приедет через месяц...

 

Вообще годная штука:

 

The STM32F103xx medium-density performance line family incorporates the high-performance ARM®Cortex®-M3 32-bit RISC core operating at a 72 MHz frequency, high-speed embedded memories (Flash memory up to 128 Kbytes and SRAM up to 20 Kbytes), and an extensive range of enhanced I/Os and peripherals connected to two APB buses. All devices offer two 12-bit ADCs, three general purpose 16-bit timers plus one PWM timer, as well as standard and advanced communication interfaces: up to two I2Cs and SPIs, three USARTs, an USB and a CAN.

 

 

 

Честно говоря, я не мерял, какая там частота, но судя по тому, что между соседними пиками CLOCK не всегда успеваю SPDR значение присвоить - для ардуины это на пределе возможностей.

Ссылка на комментарий

я тоже такой сейчас пытаюсь освоить. По возможностям он атмегу на обе лопатки кладет.

 

у атмеги частота 16 МГц, если она справляется, то и клок не больше.

Если же этот АРМ настраивать на макс. для него 72МГц, то частоту выводов шины APB1 можно получить 36Мгц, а АРВ2 - 72Мгц.

Должно хватить на программную обработку :)

 

post-1259-0-44894700-1463926263_thumb.png

Ссылка на комментарий

Мне нравится такая игрушка :) Придется заказывать :)

 

у атмеги частота 16 МГц, если она справляется, то и клок не больше.

 

SPI в атмеге работает на частоте 8 МГц максимум, думаю, там реально поменьше, учитывая, что в STM их аж две штуки, должно быть в самый раз под эту задачу...

Ссылка на комментарий

Будет очень круто сделать с этой платой формульную баранку для логитеков!

 

Ну сейчас расклад такой, ко мне едут STM32, наваять на них я что-то смогу через месяц, не раньше. То, что на картинке выше, работать скорее всего будет, но я не буду заказывать печатные платы, пока не попробую STM32. Если кто-то хочет сам попробовать - могу дать исходники (DipTrace).

 

Еще один момент, нужно понимать, сколько места внутри баранки будет под плату и какая геометрия посадочных отверстий. От этого будет зависеть разводка платы, выбор компонентов, габариты и в итоге конечная стоимость. С габаритами платы нужно уложиться в квадрат 5х5 см, иначе стоимость будет выше. Нужно определиться с разъемами, переключателями режимов и пр...

Ссылка на комментарий

Заархивировано

Эта тема находится в архиве и закрыта для дальнейших ответов.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...