Умирание Iskra JS после подключения usb-keyboard

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем Inumaru, 11 мар 2016.

  1. Inumaru

    Inumaru Нуб

    Здравствуйте.
    Купил сегодня набор Йодо.
    Все было хорошо, пока я не дошел до урока 19 (Пульт киномана)
    Вобщем скопировал код с книги, все подключил, записал код в искру. Переподключил искру, чтоб определилась как юсб клава...
    И мало того что она не работает как клавиатура (win10 не может дрова для неё установить), так она еще и обратно не шьется.
    Т.е. я зажимаю кнопку BTN1 + RESET, нужные лампочки начинают мигать, в iskra IDE снова доступна искра (но на новом ком порте), прошиваю в ней почти пустой код (console.log(123)) - все шьется без каких-либо сообщений об ошибках, НО все равно она не работает и продолжает определятся как клавиатура.
    Пробовал шить код со сменой статуса диода LED1 раз в секунду - сообщений об ошибках при заливке нет, но и не работает...
    Да и вариант нажать BTN1 после BTN1 + RESET тоже пробовал - ноль эффекта

    Вообще странно что у вас в уроке описано как сделать устройство не обнаруживаемым в IDE, но не написано как потом действовать
     

    Вложения:

    • iskra.png
      iskra.png
      Размер файла:
      8,3 КБ
      Просмотров:
      1.422
    Последнее редактирование: 11 мар 2016
    Vava_Kamch нравится это.
  2. Inumaru

    Inumaru Нуб

    Ответ найдет здесь
    http://wiki.amperka.ru/js:iskra_js
    А именно драйвер для windows...
    После установки драйвера и нажатия
    все прекрасно перепрошилось :)

    P.S. Всеж зря в буклете от Йодо нет ни слова про драйвер, нашел случайно информацию перерывая ваш сайт, пусть сама плата и работает прекрасно без драйверов в win 10
     
  3. nailxx

    nailxx Официальный Нерд Администратор

    Сообщение в 3 часа ночи :eek:

    Спасибо, что сами ответили на свой вопрос. Да, отсутствие инфы о драйвере — упущение. Добавлю этот пункт в список косяков для фикса в следующем тираже.
     
  4. Схожая проблема. Не понятно, что не работает iskra.ide или плата. Залили простую программу ШИМ регулятор яркости светодиода. Искра её запустила и работает. Больше ничего не заливается. Драйвер обновил, кнопки нажимал...
    В iskra.ide, после коннекта с платой, не появляется стандартного приглашения с надписью Искра и всего прочего. Но она делает вид, что коннектиться и всё заливает. На плате светодиод "баси" горит всё время.
    Да, в определённый момент в iskra.ide запустился дебаггер, вроде с этого момента проблема и возникла.
    ПС: На экране после коннекта только это:
    Connected
    >
     
    Последнее редактирование: 12 мар 2016
    FengRen нравится это.
  5. ИгорьК

    ИгорьК Гуру

    А на действия типа 3+2 реагирует? В настройках IDE путь к директории проектов указали? После этого появляется в левой части окошко снипетов один из которых - удалить программу из памяти. Есть и аналогичная функция, которую можно вызвать в терминале в ручном режиме.
     
    Константиныч нравится это.
  6. В консоли ничего не вводится, то есть там ничего не печатается. Путь к проектам указал.
     
  7. Вопрос к разработчикам йодо, вернее iskra.js, как восстановить бутлоадер? Похоже пытаясь разобраться с проблемой я его поломал. Очень меня кнопка Flasher в настройках заинтересовала. Только потом я прочитал в конце статьи на вики, что лучше так не делать... Эту информацию в блокнот к Йодо хорошо бы написать, а ещё лучше кнопку Flasher в среде IDE отключить.
     
  8. nailxx

    nailxx Официальный Нерд Администратор

    Смотрите, банер появляется только если в флеш-памяти нет сохранённой прошивки, т.е. по сути только первый раз.

    То, что у вас горит BUSY означает, что плата постоянно чем-то занята и ей не до ваших действий. Видимо в загруженном алгоритме dead loop. Убить bootloader непросто, вряд ли вам это удалось. Нужно только заставить её прекратить крутить цикл, чтобы дать шанс загрузить другую программу. Есть два варианта:
    1. Если вам удаётся приконнектиться (судя по тому, что вы видели дебагер), в консоли, когда увидите '>' понажимайте Ctrl+C. Это должно убить фоновые задачи вроде setInterval. Но это не поможет, если висяк в основном цикле.
    2. Зажмите BTN1, нажмите и отпустите Reset, отпустите BTN1. Вы увидите как LED1 и BUSY попеременно мигают. Это означает, что плата осталась в режиме бутлоадера. Подождите 2 секунды или более. Нажмите BTN1. Плата запустится в режиме без исполнения сохранённой программы. Можно загружать новую.
     
    Arnoobino нравится это.
  9. По пункту 1. Понажимал Ctrl+C, и много нажимал и мало, не помогло.
    По второму. Много раз это делал. Сделал ещё раз, результат тот же.
    Очень надеюсь, что бутлоадер жив :). Сейчас картина такая: При включении платы загорается ON и LED1, и светятся постоянно. В этом режиме копм её не видит, то есть при нажатии на коннект он начинает искать порт и не находит его. Если зажав BTN1 нажать и отпустить Reset всё происходит как и должно быть, LED1 и BUSY на время загораются потом начинают попеременно мигать. В этот момент можно приконнектиться. Если нажать BTN1 ещё раз, светит только ON, в этот момент также можно приконнектиться.
    В консоли после появления
    Connected
    >
    ничего более не происходит в независимости от действий. Напечатать там что-либо тоже нельзя. Во время заливки программы внизу справа индикатор (зелёная полоска) показывает, что программа заливается, в консоли в этот момент тихо. В итоге плата новую программу не выполняет.
    На всякий случай код, который был залит и работал последним (вдруг это важно)
    Код (Javascript):

    pinMode(P5,"output");
    var i = 0;
    var i1 = 0;
    for(i1 = 0; i<100; i++) {
      for(i=0;i<=1000;i++) {
        analogWrite(P5,i/1000);
      }
      for(i=0;i<=1000;i++) {
        analogWrite(P5,1 - (i/1000));
      }
    }
    и картинка, как выглядит заливка
    pic.png
    пс: Пока принтскринил картинку перестало даже делать вид, что заливается. Зелёная полоска внизу справа доходит до места как на картинке и останавливается, дальше всё.
     
    FengRen нравится это.
  10. nailxx

    nailxx Официальный Нерд Администратор

    Немного нелепый совет: дайте коду отработать. Пусть сработает свои 200 тысяч циклов. Мне сложно прикинуть сколько это точно по времени, оценочно — несколько минут. После этого плата должна ожить, порт найтись. Залейте в неё что-нибудь попроще в этот момент.

    Вообще не дело, что её не получилось кнопками оживить. Я не могу, увы, в выходные ничего толком сделать. Будем решать проблему в понедельник. В самом худшем случае, не беспокойтесь, доставим вам новую.
     
    Константиныч нравится это.
  11. Сейчас программа не запускается. Когда запускалась, дорабатывала до конца, там не так долго :).
    Спасибо, что помогаете, жду понедельника.
     
  12. nailxx

    nailxx Официальный Нерд Администратор

    Ok. Я только не до конца понял вы попробовали таки flash заново накатить? Если нет, попробуйте.

    Переведите плату в режим приёма прошивки (btn1+reset), затем в IDE идите в: шестерёночка → Flasher → Flash Firmware. Должен появиться селектор из одной платы (Iskra.js), жмите Next → Next и ждите пока закончится процесс.
     
    FengRen нравится это.
  13. Обновил flash, во время обновления Busy активно мигал, индикатор в IDE показывал ход выполнения процесса. В конце вылезло сообщение, что всё успешно обновлено. Ситуация на плате немного изменилась.
    При включении светятся ON и BUSY и выполняется последний алгоритм (который из кучи циклов). В этом режиме плата коннектится с IDE. В режиме когда LED1 и BUSY мигают попеременно алгоритм перестаёт выполняться, плата коннектится с IDE. В режиме без исполнения сохранённой программы алгоритм не выполняется, светится только ON, но плата не коннектится с IDE, она показывает порт, при его выборе всё на несколько минут зависает, потом сообщение о подключении просто гаснет. Если сначала приконнектиться, а потом перейти в режим без исполнения сохранённой программы, то плата не отваливается.
    Во время заливки программы в обычном режиме и в режиме без исполнения программы в IDE индикатор показывает, что программа заливается, в консоли ничего не меняется, на плате индикаторы тоже не меняют своего поведения.
    Может проблема в IDE? Хотя её я тоже переустановил... В консоли по прежнему ничего нельзя ввести, может в этом причина? Это произошло после запуска дебаггера, он включился случайно, я не знаю как его вызвать. Выключить его нормально тоже не получилось, выключал закрытием IDE.
    Установил IDE на другом компе, проблема осталась, дело не в IDE.
    ПС: программа на плате крутится уже более 6-и часов...
     
    Последнее редактирование: 13 мар 2016
    Vava_Kamch нравится это.
  14. nailxx

    nailxx Официальный Нерд Администратор

    Дистанционно сдаюсь. Давайте мы вам новую плату пришлём, а эту воочию попробуем помучать? Напишите в личку, пожалуйста, номер заказа и как удобнее получить замену: курьером или в офисе.
     
    Михаил Б. и Vava_Kamch нравится это.
  15. Новая плата нормально работает. Спасибо за помощь.
     
    Vava_Kamch нравится это.
  16. budyaga

    budyaga Нуб

    Добрый день. Есть проблем с эмуляцией клавиатуры. Использую Windows 8.1. Установил Virtual Com port driver V1.4.0. После установки драйвера комп перезагружал.
    Заливаю прошивку:
    Код (Javascript):
    var button = require('@amperka/button').connect(P3, {holdTime: 0.5});

    var kb = require('@amperka/usb-keyboard');

    button.on('click', function() {
      console.log('111');
      kb.type('123');
    });
    Плату от компа отключил и подключил заново. При нажатии кнопки в консоли появляется "111", однако в текстовом редакторе, где стоит курсор, "123" не появляется.

    Спасибо
     
  17. budyaga

    budyaga Нуб

    В BIOS при подключенной плате отображается на одну USB-клавиатуру больше, чем без неё. Получается, система определяет плату, как USB-клавиатуру.
     
  18. budyaga

    budyaga Нуб

    Добавил callback вторым параметром функции type. Он срабатывает, но текст так и не выводится.
     
  19. nailxx

    nailxx Официальный Нерд Администратор

    Проверил ваш сниппет, у меня после рестарта платы работает: печатает 123. Из того, что в голову приходит:
    • Установлена ли у вас галочка «Save on Send» в Settings → Communications? Должна быть установлена.
    • Пробовали ли вы нажимать на кнопку, когда плата не соединена со средой программирования?
    • Какие клавы показывает «Диспетчер устройств»?
     
  20. budyaga

    budyaga Нуб

    1. Галочка установлена
    2. Пробовал
    3. Показывает только одну.

    Что вы подразумеваете под "рестартом"? Заливка новой прошивки?
    Как вообще должна отображаться плата в Диспетчере устройств?

    Кажется, проблема всё таки в Винде. Зашёл в BIOS. Во-первых, там, как и писал ранее, отображается больше клав. Во-вторых, если установить курсор в любом поле, где есть возможность ввода текста, и нажать кнопку, вводит 123.

    В Винде уже даже пробовал отключать обычную клавиатуру и после этого переподключать плату - без толку.