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

RomanST

Рейсеры
  • Постов

    1521
  • Зарегистрирован

  • Посещение

  • Победитель дней

    38

Весь контент RomanST

  1. Про схему я предупредил что она там левая. В шифтере стоят немного другие сдвиговые регистры. Нет, это не значит, что память умерла, это не метод диагностики.
  2. Светодиод там светится при nCS = 1 (высокий уровень на ноге 3). Собственно, единственное, что этот светодиод имеет в виду - на этой ноге есть напряжение. Все. Ардуиной можно проверить, в этой теме есть все нужное: http://forum.simracing.su/index.php?showtopic=2554&st=0 (только схема шифтера кривая малость )
  3. Частичного повреждения прошивки не бывает. Что именно не работает - по такому описанию определить не получится, попробуйте одолжить у кого нибудь исправный шифтер и посмотреть, работает ли он. Адаптер - не для ремонта, он для подключения исправного шифтера как отдельное USB устройство. Будет ли работать ваш - хз.
  4. T300 Ferrari GTE read out with unpushed buttons 1010 1111 | 1111 1111 | 1111 1111 | 1111 1111 | 0000 0000 | 0000 0000 | 1000 0000 | 1000 0000 | Byte 1 (bits 7 to 0) 7 - Scroll 6 - 0 (fixed) 5 - 1 (fixed) 4 - 0 (fixed) 3 - Left Paddle 2 - Right Paddle 1 - Pit 0 - Water Byte 2 (7 -> 0) 7 - 1 (fixed) 6 - Wiper 5 - Manettino 2 4 - Manettino Off 3 - Radio 2 - Flash 1 - 1 (fixed) 0 - 1 (fixed) Byte 3 (7 -> 0) 7 - 1 (fixed) 6 - D-Pad Down 5 - D-Pad Right 4 - D-Pad Left 3 - D-Pad Up 2 - 1 (fixed) 1 - 1 (fixed) 0 - 1 (fixed)
  5. Это что реальная баранка по SPI посылает, там часть позиций фиксированная, а часть - зависит от того, нажата ли кнопка. Конкретно тут фишка в том, что: 1) Для Ferrari Edition дампа я в интернетике еще не находил, теперь он у меня тоже есть. 2) Я наконец то осилил как то продолжить изыскания, последние пару недель было не до того совсем. Ну и ко мне едет еще одна база Т300, на этот раз вроде бы полностью рабочая, так что пока я на базе той же голубой таблетки сделаю транслятор из Ferrari Edition в формат баранки F1 и скоро проверю получилось что нибудь или нет :)
  6. Рекомендую финский: https://www.urbandictionary.com/define.php?term=Perkeleen%20Vittup%C3%A4%C3%A4 :)
  7. Наконец то появятся трамплины и пулеметы? :)
  8. С редуктором или без редуктора - разница только в мощности силовых транзисторов. Лучше бы ты поторопился с баранкой, конкуренты не спят, вот для G29 бублик скоро будет готов: https://www.gtplanet.net/forum/threads/diy-logitech-g25-g27-shifter-pedals-usb-adapter.349367/page-2#post-12180650
  9. Разорился на вот такую штуку: Это в сломаную базу Т300, если починить так и не получится. Если получится, то все равно поиграюсь. А так вообще пока руки не дошли что-то сделать...
  10. Не, не надо суперклеем, чинить будет сложнее намного, а толку от этого суперклея - ноль. ЗЫ: Фото прислали, это не я так выломал.
  11. Походу реально надо делать разъем USB Type B с монтажом насквозь...
  12. Налетай, торопись, покупай живопись! Поддержи отечественного производителя пока это не сделали другие :) Запилил статью, будет интересно только тем, кто сам что-то паяет: https://geektimes.ru/post/297499/
  13. AUTO-CALIBRATION AND WHEEL CENTERING (requires the V40 firmware or a later version) 2 MODES ARE AVAILABLE FOR THE AUTO-CALIBRATION AND WHEEL CENTERING FEATURES During the auto-calibration phase, the racing wheel must come into full contact with the left, then right stops before moving to the center position. If the left stop isn't fully reached (e.g. if the internal/external temperature retracts the stop, or mechanical tolerances increase or reduce friction against the stop), the racing wheel's center position may be slightly offset by approx. 20 degrees. In this case, please select the "Slow auto-calibration" mode. • "Quick auto-calibration" mode (default mode) : = the racing wheel briefly touches the left stop before contacting the right stop, then moving to the center position. • "Slow auto-calibration" mode (requires a specific procedure) : = the racing wheel stays against the left stop for a longer period before contacting the right stop, then moving to the center position. The auto-calibration therefore requires a little more time. You do not need to switch to this mode if the racing wheel's "Quick auto-calibration" mode (i.e. the default mode) produces satisfactory results. Switching to the "Slow auto-calibration mode": 1) Press the racing wheel's "MODE" button while connecting the wheel's USB cable to the PC or PS3 system. 2) Release the button once the USB cable is connected. 3) The racing wheel's "Slow auto-calibration" mode is now active. (This mode is automatically saved to the system's internal memory; you do not need to repeat the procedure every time you connect the racing wheel to your PC or PS3 system.) Reverting to the "Quick auto-calibration" mode (default mode): 1) Connect your racing wheel to your PC or PS3 system, proceeding exactly as described above. 2) The racing wheel's "Quick auto-calibration" mode is now active. (This mode is automatically saved to the device's internal memory.) Identifying the saved auto-calibration mode: - "Quick auto-Calibration" mode: the racing wheel's LED does not change colour after the calibration procedure. - "Slow auto-Calibration" mode: the racing wheel's LED briefly changes colour after the calibration procedure, then reverts to its initial colour. Notes: - In both modes, if your racing wheel is located near the left stop before you connect the device's USB cable, the wheel will automatically move to the center position before the auto-calibration phase begins. - The selected auto-calibration mode is active for all of the T500's wheels (GT, F1, etc.). - The selected auto-calibration mode doesn't alter the racing wheel's other settings (force feedback intensity, centring speed, etc.). Видимо добавили уже после того, как посыпались горы расколотых рулей... Однако маразматичности процедуры это не отменяет.
  14. На правах пятничного алкогольного бреда: Вся эта процедура с битьем мордой об стенку калибровкой нужна только чтобы провод внутри руля не перекрутился. Соответственно, нужно знать положение руля с учетом того, что он многооборотный, и тогда можно не ломать пластик в попытках выяснить "а где это я?". В трахмастере есть нечто похожее на шнек мясорубки, если его использовать как червячную передачу для поворота шестеренки с потенциометром - можно грубо оценить где тут берега. А точное положение - уже датчиком Холла на двигателе. Тогда можно медленно спуститься с горы повернуть руль до центра и на этом успокоиться. Ы?
  15. Это да :) Я так и не понял что я там неправильно сделал, прозванивал все цепи перед тем как в розетку включать и микроскопом все смотрел... Видимо там на линию USB 25 вольт прилетело...
  16. Бывают удачные дни, а бывают - как вчера... В общем, процесс ремонта несколько затягивается... Заодно придется чинить USB-хаб и мышку... Слава богу комп не пострадал...
  17. Приехали детальки, опять пол-ночи с паяльником сидеть :) Будем надеяться, что оно сразу резко оживет и все будет круто... А так я все смотрю на эти рули внутри и уже хочется свой замутить... Только кто же его покупать будет? :)
  18. mini Din 6Pin - хреновые разъемы, ну, по крайней мере те, которые у меня есть. Паять неудобно.
  19. Из того, что я понял просто изучая интернет: База опрашивает баранку по SPI. Баранка передает базе 24 бита. Первые несколько бит (возможно 8) - фиксированы. Возможно по ним база определяет что это за баранка. У меня есть образец данных для баранки 458 Italia и есть баранка Ильи, которая отличается по внутренностям, но скорее всего работает аналогично. Осталось спаять переходник и проверить, что именно передает та баранка, которая у меня есть. После этого я смогу более определенно сказать, нужна ли баранка ф1. Возможно получится просто подобрать идентификатор для нее. Но здесь уже желательно иметь рабочую базу. В общем, подождите немного, скоро будет больше информации. Платы внутри разные кстати. Вот TX RW, тут все просто и понятно: А вот внутри баранки Ильи: Это тайваньский 8-битный OTP контроллер, думаю, самый дешевый, который только можно было найти: Верхняя баранка видимо как раз 458 Italia, раз они совместимы - значит, протокол должен быть одинаковый. Но есть еще одна нога, которая в верхней баранке не искользуется. Скорее всего это MOSI (Master-Out-Slave-In) и что по ней передается - еще предстоит разобраться. Green – not used (reserved for MOSI?) Blue – GND (ground) White – MISO (master-in-serial-out, this is a serial data line from wheel to base) Orange – SS (slave select, also called PL – parallel load) Red – SCK (clock) Black +VCC (wheelbase uses +3.3V) Небольшое дополнение: /* Ver. 1.03 beta 2016-08-05 This sketch emulates Thrustmaster F1 Wheel addon allowing to connect arduino (Arduino Pro Mini) to TX RW wheelbase (may work for T500/T300 as well) and emulate button presses - up to 17 buttons +4 emulated (D-Pad) buttons can be connected to arduino. !!! There are 2 flavours of arduino boards - powered by +5 volts or +3.3 volts !!! !!! If you have +5V Arduino version - disconnect it from USB before connecting to a wheelbase !!! !!! Just power your arduino from TX RW wheelbase Black pin - it supplies +3.3V voltage (should be enough) !!! !!! don't connect USB +5V wire to TX RW wheelbase Black +3.3V - you'll get a collision !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! Tested with Arduino Mini Pro (ATMEGA 328P) at 3V 12MHz !!! Thrustmaster Wheelbase cable pinout (PS/2 connector, also known as mini-Din 6pin female): 1 - Green - MOSI Don't connect 2 - Blue - GND (ground) 3 - White - MISO (master in, slave out - to read the data from the wheel) 4 - Orange - SS (slave select, or PL - parallel load, set it to 0 when you want to read the data) 5 - Red - CLK (clock impulses) 6 - Black - +VCC (+3.3 volts! if you have Arduino 5V version - use external +3.3V power or use the wheelbase power!!!) Arduino UNO pins -> TX RW wheelbase cable pins MISO - used for button 2 Gear Up Arduino GND -> TWRX Blue wire (2) Arduino pin 12 (MOSI) -> TXRW White wire (3) (data from wheel to base) Arduino pin 10 (SS) -> TXRW Orange wire pin (4) Arduino pin 13 (SCK) -> TXRW Red wire (5) Arduino +5V -> TXRW Black wire (6) (it gives 3.3V, but must be connected into +5V socket on arduino uno side) Button mappings Read out with unpushed buttons 1100 1111 | 1111 1111 | 1111 1111 | 1111 1111 | 0000 0000 | 0000 0000 | 0110 0000 | 0100 0000 | Byte 1 1-8 5 (DRS) - (A) --> 11 (PortB bit2) 1-7 static 1 ??? 1-6 static 0 ??? 1-5 static 0 ??? 1-4 1 (gear down) - (LB) --> A3 (PortC bit3) 1-3 2 (gear up) - (RB) --> A2 (PortC bit2) 1-2 3 (N) - (X) --> A1 (PortC bit1) 1-1 4 (PIT) - (A) --> A0 (PortC bit0) Byte 2 2-8 13 (START sw) - (A) --> 7 (PortD bit7) (It has soldered same function up and down) 2-7 6 (10+) - (LB) --> 6 (PortD bit6) 2-6 7 (BO sw) - (VIEW) --> 5 (PortD bit5) (It has soldered same function up and down) 2-5 8 (WET sw) - (MENU) --> 4 (PortD bit4) (It has soldered same function up and down) 2-4 9 (PL) - (B) --> 3 (PortD bit3) 2-3 10 (K) - (Y) --> 2 (PortD bit2) 2-2 11 (PUMP) - (A) --> TX/1 (PortD bit1) 2-1 12 (1-) - (RB) --> RX/0 (PortD bit0) Byte 3 3-8 21 (BP up) - (Same as D-Pad) (PortC bit6) R1=10K Ohm 3-7 D-pad down - (D-Pad) ------> JOY_X // JOY_X: GND --[====/===]-- Vcc 3-6 D-pad right - (D-Pad) ------> JOY_Y | 3-5 D-pad left - (D-Pad) ------> JOY_Y |A5 (PortC 5) R2=10K Ohm // JOY_X: GND --[====/===]-- Vcc 3-4 D-pad up - (D-Pad) ------> JOY_X A6 | 3-3 20 (BP down) - (Same as D-Pad) (PortC bit5) 3-2 19 (BP right) - (Same as D-Pad) (PortB bit1) 3-1 18 (BP left) - (Same as D-Pad) (PortB bit0) Byte 4 Not Implemented yet 4-7 16 (CHRG down) (rotary encoder flag bit) 4-6 14 (DIF IN up) (rotary encoder flag bit) 4-5 15 (DIF IN down) (rotary encoder flag bit) 4-4 17 (CHRG up) (rotary encoder flag bit) 4-3 static 1 ??? 4-2 static 1 ??? 4-1 static 1 ??? 4-0 static 1 ??? Byte 5 Not Implemented yet It shows DIF IN rotary enc steps. Rotate up: xxxx 1111 Rotate down: xxxx 0000 xxxx shows how much step was from last read out, but I can't count exactly. Byte 6 Not Implemented yet It shows CHRG rotary enc steps. Rotate up xxxx 1111 Rotate down xxxx 0000 Byte 7 static Byte 8 static Ah, each push button has 2 pins - you connect one to Arduino, another to the Ground :) Pressed button gives you "0" (grounded signal), released = "1" (pulled-up to +VCC) For D-pad use an Analog mini joy 10kOhm Feel free to modify and use it for your needs. This sketch and the documentation above provided "AS IS" under the BSD New license. http://opensource.org/licenses/BSD-3-Clause Based on (c) Taras Ivaniukovich (blog@rr-m.org) April 2015 Istvan Virag Aug 2016 added some F1 wheel function http://rr-m.org/blog/hacking-a-thrustmaster-tx-rw-wheelbase-with-arduino-uno-part-2/ */ //#include "pins_arduino.h" // not necessary in 1.6.3? #include <SPI.h> #define D_padX A6 #define D_padY A7 #define treshold_min 75 // treshold limits of buttons 0-255 (1 Byte) #define treshold_mincent 100 // You can setup as you like it #define treshold_maxcent 156 // #define treshold_max 181 // byte wait; volatile byte wheelState[16]; volatile byte pos = 1; volatile boolean SSlast = HIGH; // SS last flag. volatile boolean ReadFlag = HIGH; volatile byte AnalogValue; volatile byte D_Pad_State = B11111111; volatile byte analogD_padX = 128; volatile byte analogD_padY = 128; void setup () { sei(); //enable global interrupts DDRB |= B00001011; // digital pins 8,9,11 used as inputs with a pull-up to +VCC PORTB |= B00001011; DDRC |= B00111111; // pins 14-19 (A0 - A5) also used as digital inputs PORTC |= B00111111; // pulled-up to +VCC via internal 100k resistors DDRD |= B11111111; // digital pins 0,1,3,4,5,6,7 used as inputs PORTD |= B11111111; // pulled-up to +VCC via internal 100k resistors wheelState[0] = B11001111; // TX RW Ferrari 458 Italia Wheel first data byte wheelState[1] = B11111111; // second data byte - buttons wheelState[2] = B11111111; // third data byte - buttons wheelState[3] = B11111111; // this and below - not used, but wheelbase reads all 8 bytes... wheelState[4] = B00000000; wheelState[5] = B00000000; wheelState[6] = B01100000; wheelState[7] = B01000000; wheelState[8] = 0x00; // Just for more compability to the future wheelState[9] = 0x00; wheelState[10] = 0x00; wheelState[11] = 0x00; wheelState[12] = 0x00; wheelState[13] = 0x00; wheelState[14] = 0x00; wheelState[15] = 0x00; // SPI parameters SPCR = B11000000; //SPI Slave setup pinMode(MISO, OUTPUT); // Slave device /* Pin Change Interrupt services * PCICR |= PCIE0 1 * PCMSK = PCINT7-0 PCINT6-0 PCINT5-0 PCINT4-0 PCINT3-0 PCINT2-1 PCINT1-0 PCINT0-0 */ PCICR = B00000001; //Configure PCINT2 PCMSK0 = B00000100; // Interrupt on SS pin } // PinChange Interrupt for start SPI communication ISR (PCINT0_vect) { if (!(PINB & B00000100)) { SPDR = wheelState[0]; // load first byte into SPI data register pos = 1; } } // SPI interrupt routine ISR (SPI_STC_vect) { SPDR = wheelState[pos++]; // load the next byte to SPI output register and return. } // Interrupt service routine for the Analog reading ISR (ADC_vect) { switch (ADMUX & B00000001) { case 0x00: analogD_padX = ADCH; // 8 bit AD conversion is enough break; case 0x01: analogD_padY = ADCH; break; } ADCSRA = B00000100; // Stop ADC ReadFlag = HIGH; } void loop() { // scan the button presses if (ReadFlag) { // Start Next Analog Read switch (ADMUX & B00000001) { case 0x00: ADMUX = B01100111; ReadFlag = LOW; ADCSRA = B11001100; // ADC setup, start break; case 0x01: ADMUX = B01100110; ReadFlag = LOW; ADCSRA = B11001100; // ADC setup, start break; } // analog joy 1 X coordinate if (analogD_padX < treshold_min) { //0XX1PPPP go down D_Pad_State &= B01110000; D_Pad_State |= B00010000; } else if ( analogD_padX > treshold_max) { //1XX0PPPP go up D_Pad_State &= B11101111; D_Pad_State |= B10000000; } else if ( (analogD_padX > treshold_mincent) & (analogD_padX < treshold_maxcent)) { //1XX1PPPP stay D_Pad_State |= B10010000; } // analog joy 1 Y coordinate if (analogD_padY < treshold_min) { //X10XPPPP go left D_Pad_State &= B11011111; D_Pad_State |= B01000000; } else if ( analogD_padY > treshold_max) { //X01XPPPP go right D_Pad_State &= B10111111; D_Pad_State |= B00100000; } else if ( (analogD_padY > treshold_mincent) & (analogD_padY < treshold_maxcent)) { //X11XPPPP stay D_Pad_State |= B01100000; } } wheelState[0] = (B01000000 | ((PINB << 4) & B10000000) | (PINC & B00001111)); wheelState[1] = PIND; // take 8 bits from PORTD wheelState[2] = (((D_Pad_State >> 1) & B01111000) | (PINB & B00000011) | ((PINC << 2) & B10000000) | ((PINC >> 2) & B00000100)) ; // wheelState [8] = analogD_padX; // You can setup treshold limits with a Raspberry Pi // wheelState [9] = analogD_padY; // wheelState [10] = D_Pad_State; } // end of main loop()
  20. Илья, все проблемы решаемы! Спасибо тебе за руль, он нам очень пригодится! Завтра-послезавтра приедут новые транзисторы и драйвер трехфазника, надеюсь что это решит проблему с электроникой. Если нет - ну проковыряюсь немного дольше, мне не сложно Да и опрос кнопок баранки можно замутить имея только саму баранку и крепление, думаю, этого будет достаточно. ЗЫ: Расколотые детали я склеил эпоксидкой, сначала думал, что этого будет достаточно, но потом посмотрел на ютубе как калибруются исправные T300 - это пц какой то, как можно было ТАК руль делать?
×
×
  • Создать...