Долгожданные новогодние праздники я провожу на даче, где решил установить еще с десяток устройств с nRF24L01+ радиоканалом для своего умного дома. И когда запас радиомодулей показал дно, остались штук пять непонятных модулей, которые вроде и работают, но как-то хреново. При прошивании по воздуху они тяряют пакеты крупным оптом, но стоит каснуться их антенны пальцем — и все внезапно работает как надо. Решил изучить эту проблему и даже нашел решение.
Быстрый поиск по интернету выявил десятки тем на форумах ардуинщиков разной степени свежести. Вот примерно список того, что нашлось:
- nRF24L01+ only working when I place my finger on it
- NRF24L01 failing. Placing finger on aerial fixes it!
- Problem using nrf24l01+ modules. Print details seem ok. Only work when touching.
И так далее. Все рекомендации сводились к «выкиньте в помойку и купите у другого продавца» и «нужно больше керамики на питании Богу Керамики и Богу Питания«.
Как и ожидалось, напаянная гирлянда конденсаторов всех сортов и расцветок на питании помогла не сильно, а осциллограф показывал очень и очень чистые 3.3 вольта, а это значило, что проблема явно не в питании. Что же такого волшебного делает палец?
Почесал голову, прикинул сроки поставки новых модулей из китая — расстроился. Посмотрел еще раз на мертвецов, подумал, и вспомнил историю как китайцы любят «оптимизировать» стоимость продукции. Кстати, с теми же самыми nRF24L01+ тогда проблема была! Ну и, кажется уже догадываясь, в чем может быть проблема, полез я за даташитом.
Что происходит, когда мы касаемся пальцем антенны? Во-первых мы сами становимся антенной, а во-вторых мы меняем емкость существующей антенны. То что играет роль именно емкость, я убедился закрыв антенну слоем каптона и положив палец поверх него. Эффект такой же!
Открываем даташит и смотрим предлагаемую Nordic Semiconductor схематику.
Первое что я увидел, что отмеченный красным конденсатор C6 ни на одном из моих nRF24L01+ модулей, даже работавших нормально, напаян не был. Вот где по логике он должен был быть.
Красным я отметил пустующее посадочное место, а зеленым конденсатор, который я напаял. Успех. А что будет если мы напаяем его?
И тут случилось чудо, модули заработали! При прошивке все стало один-в-один, как и с нормальными модулями!
На тестах с mysensors, рапортуемые устройствами уровни сигналов были хуже, чем на нормальных модулях, что недвусмысленно намекало, что все же что-то с ними не то, но ими хотя бы можно было пользоваться. На нормальных модулях это сказалось (субъективно) положительно на уровне сигнала.