Вышел rf24boot v0.2

DSC_0078

Месяц выдался угарным, но у меня все же нашлась минутка допилить rf24boot.. Да, та самая хрень, которая может обновлять прошивку в мк поверх nRF24L01 беспроводного интерфейса. Вместе со стандартным набором фиксов для библиотеки rf24 в antares, в сам загрузчик я тоже внес тонну изменений. Самое главное — наконец-то сделал USB-стик для программирования.. Так как дешевого stm32 с USB под рукой не было, а использовать stm32f103ret6 на такое жаба задушила донгл вышел на atmega8 с vusb внутри и 16M кварцем.  (Вожно и 20Mhz, и даже 24.5 воткнуть, в принципе). Под катом ченджлог.

Первое что изменилось — скорость. Пршивка 26 кб и верификация теперь занимают ~23 секунды, что является лютейшим вином (Было — 2 минуты). Второе, стабильность работы на плохих линках с кучей помех намного увеличена. Оно будет тормозить, подвисать, но все же сделает дело! Даже если сидит на том же канале, что и вайфай по которому сейчас выкачивают кучу  порно данных. Кстати… Еще я добавил в rf24tool опцию —sweep, которая сканирует диапазон и выводит через gnuplot красивый график использования 2.4Ghz диапазона разными устройствами. Не только nrf24l01, но и вайфаем, блютузом и прочими игрушками. Ниже идет скриншот:

jU57h5vj5R_3

А вот и полный ченджлог:

Документация
  • Добавлена куча READMEшек  для тех, кто любит читать
USB-стик для программирования
  •      Новый референсный дизайн донгла.
  •      Сверхдешевый и простой вариант платы: один слой, можно сделать ЛУТом, можно заказать в китаях за ~$10
  •      Реализована буфферизация и асинхронная отправка данных усб-стиком (По-русски — теперь мы работаем сильно быстрее)
rf24tool
  •      Отрефакторен код rf24tool, убраны все предупреждения при сборке.
  •      Вычистка кода (Выглядит местами все еще стремно, но зато уже почти читаемо)
  •      Теперь можно просто добавить свой адаптер!
  •      Улучшения производительности
  •      Улучшена стабильность при работе с узлами, находящимися далеко.
  •      Набор тестов
  •      Сканирование спектра опцией —sweep
Загрузчик
  •      Исправлена обработка случаев, когда в RX фифо пришло больше одного пакета.
  •      Улучшена производительность
  •      Уменьшен размер кода

 

Плохие же новости в том, что кое какие проблемы остались.

  • Новый USB-донгл, как оказалось плохо себя ведет с USB 3.0 портом в моем ноутбуке, в то время как с USB 2.0 портами все хорошо. Пожалуй тут придется покопаться, написать пару тестов, чтобы понять что происходит. Возможно особенность vusb..
  • Библиотека для  nrf24l01+ пока все еще имеет несколько проблем (Все они обходятся в текущем варианте загрузчика, но чинить это дело надо).

Собственно, библиотечка для rf24 доставляет больше всего неприятностей на текущий день. Сейчас это порт на чистый C библиотеки для arduino от maniacbug. И как обычно бывает с кодом для дурины, это странная дурнопахнущая масса с 200+ форками, половина из которых заброшена. В общем, все как обычно. (Когда меня спрашивают почему я ненавижу arduino — это, одна из главных причин!). Да и на саму rf24 библиотеку автор по ходу крепко забил. Так что мне это надоело и в моем TODO списке теперь значится:

  • Отрефакторить nrf24l01 библиотеку. А именно — буферизация пакетов в аппаратном fifo, уменьшение размера кода, multiceiver, etc.
  • Понять какого лешего пара пакетов застревает в аппаратном FIFO.
  • Добавить в rf24tool поддержку spidev адаптера и gpiobb адаптера.
  • Вынести часть кода из rf24tool которая работает с адаптером в шареную библиотечку, которую можно было бы использовать в своих программах. .

Да, и если хочется все это увидеть в этом мире БЫСТРЕЕ, то приглашаю помочь — все это добро лежит на github‘е.

Добавить комментарий