XIAO ESP32S3 + Semtech SX1262

Hej, mam problem z PIN’ami do XIAO ESP32S3 & Wio-SX1262.
Sprawdziłem dokumentację oraz firmware Meshtastic i niestety, albo w ogóle nic nie odbiera, albo nie łączy się z CC1101 chociaż tu nie ma tego modułu…

Meshtastic XIAO S3
Wiki XIAO ESP32S3 & Wio-SX1262

Uzywam naprzemiennie

  mosi_pin: GPIO09 #SDI #GPIO11 #GPIO09
  clk_pin:  GPIO07 #SCK #GPIO13 #GPIO07
  miso_pin: GPIO08 #SDO #GPIO12 #GPIO08
  gdo2_pin: GPIO15
  gdo0_pin: GPIO14
  cs_pin:   GPIO41  #GPIO10 #GPIO41 

Może komuś z Was udało się już skonfigurować XIAO ESP32S3 & Wio-SX1262 z Esphome-components?

@_Szczepan dzięki za info. Niestety szukałem w obu wątkach i na githubie i nie znalazłem informacji o tym :frowning:

Już kiedyś pisałem - ten SX nie jest wspierany w komponencie.

Jest że wspiera CC1101.

1 Like

@_Szczepan
Ok jest, że wsparcie C1101. A co z sx1280 i sx1276, gdzie również wspiera lecz nieoficjalnie? :wink: o tym też ani widu, ani słychu.

Nvm. Znalazłem forka z sx1262 i sobie potestuje.

Który to?

Z tym SXem jest taki problem że nie ma on FIFO (ale za to ma dużą pamięć na ramkę). Wszystko do 255 odbierzesz bez problemu i bez większego przerabiania komponentu. Powiedział bym że lepiej niż CC1101 bo masz info że “ramka odebrana” a nie musisz bawić się w składanie tego po kawałku. Minus (bez przerabiania) jest taki że masz ten limit pamięci (praktycznie tylko watomierze wysyłają tak dużo danych).

Hej, Fork Sx126x by HenrikBurton jeszcze nie testowałem.

Moze kiedyś coś tam się pojawi. Na dzien dzisiejszy to nawet tam jest tylko CC1101 :wink:

@_Szczepan zmień gałąź, na devie niby coś jest.

Zastanawia mnie też również, czy nie można wykorzystać czegoś z RadioLib

Więc niby działa.

Mozesz korzystac z dowolnej biblioteki byle by wspierała ten HW co masz.

Na pewno SmartRC-CC1101-Driver-Lib nie wspiera SX. Jesteś skazany na cos innego. Moze byc RadioLib. Ale dla CC1101 musisz troche dopisac do RadioLib’a.

Napisze jeszcze raz - nie ma na tym forku wsparcia dla SX.

1 Like

do brancha też można linkować
https://github.com/HenrikBurton/esphome-components/tree/dev
(to taka uwaga techniczna, bo na githubie można linkować niemal do wszystkiego co może być użyteczne, w tym nawet do konkretnych linii kodu)

1 Like

Jeszcze raz aby nie było nieporozumień.

  1. Obecnie SX1262 nie jest wspierany.

  2. Dodanie wsparcia dla niego nie jest skomplikowane:
    a) trzeba przejść na np. RadioLib
    b) ten SX nie ma FIFO ale ma dużą pamięć na dane (256 bajtów z tego co pamiętam)
    c) jak nie potrzebujesz odczytywać watomierzy (na 99% to tylko one wysyłają takie długie telegramy) to implementacja jest banalnie prosta:

    • konfigurujesz SX
    • czekasz aż SX da znać ze ma dane w pamięci
    • odczytujesz te dane
    • obrabiasz
    • wysyłasz dalej
  3. jak chcesz “watomierze” to tez da się to zrobić z tym SX ale musisz odczytywać bajt po bajcie (albo obczaić DMA/FIFO dla SPI w ESP32) - to wymaga zmian w komponencie (nie wiem tez jak ESPHome sie zachowa), opis TU

  1. przejście na RadioLib zapewni tez wsparcie dla innych SXów z FIFO oraz dla CC1101, niestety jest mały haczyk - trzeba trochę dopisać do RadioLib’owego kodu dla CC1101 aby to zadziałało

A dlaczego tego nie ma w komponencie? Proste - brak czasu aby to ładnie ogarnąć prostą konfiguracją w YAMLu :wink:

Ochotnik jest poszukiwany - wszystko mogę wyjaśnić.

ps.
Rozumiem ze ten XIAO kusi. 10$ i masz rozwiązanie “z półki”.

ps2.
Możesz kombinować z:

#include <RadioLib.h>

// SPI
#define SS         GPIO_NUM_8
#define MOSI     GPIO_NUM_10
#define MISO     GPIO_NUM_11
#define SCK       GPIO_NUM_9
// Radio
#define DIO1      GPIO_NUM_14
#define RST       GPIO_NUM_12
#define BUSY    GPIO_NUM_13

// config
SX1262 radio = new Module(SS, DIO1, RST, BUSY);
radio.beginFSK();
radio.setFrequency(868.95);
radio.setBitRate(100.0);
radio.setFrequencyDeviation(50.0);
radio.setRxBandwidth(312.0);
radio.setPreambleLength(32);
radio.setCRC(0);
radio.setSyncWord({0x54, 0x3D}, 2);

// Rx
String data;
radio.receive(data);

Nie testowane, może zadziała :wink:
Osobiście polecał bym dodanie jeszcze setPacketReceivedAction z libki RadioLib’a.

ps
Jak zasponsorujecie mi taką kanapkę :wink: to ogarnę to w komponencie.

3 Likes