Git Product home page Git Product logo

sx1231-spin's Introduction

sx1231-spin


This is a P8X32A/Propeller driver object for the Semtech SX1231 UHF Transceiver (SPI)

IMPORTANT: This software is meant to be used with the spin-standard-library (P8X32A) or p2-spin-standard-library (P2X8C4M64P). Please install the applicable library first before attempting to use this code, otherwise you will be missing several files required to build the project.

Salient Features

  • SPI connection at up to 1MHz (P1), 10MHz (P2)
  • Set on-air bitrate
  • Set carrier center freq
  • Set carrier deviation freq
  • Set modulation type
  • Set transmit power
  • Set number of preamble bytes
  • Set packet length
  • Set syncword (and length of)
  • Enable and read on-chip low-battery status
  • Address matching/filtering (including broadcast)
  • CRC generation/checking
  • Data whitening or Manchester encoding (untested)
  • Encryption (untested)
  • Configure GPIO (DIO0..5) functionality

Requirements

P1/SPIN1:

  • spin-standard-library
  • 1 extra core/cog for the PASM SPI engine

P2/SPIN2:

  • p2-spin-standard-library

Compiler Compatibility

Processor Language Compiler Backend Status
P1 SPIN1 FlexSpin (5.9.14-beta) Bytecode OK
P1 SPIN1 FlexSpin (5.9.14-beta) Native code OK
P1 SPIN1 OpenSpin (1.00.81) Bytecode Untested (deprecated)
P2 SPIN2 FlexSpin (5.9.14-beta) NuCode Untested
P2 SPIN2 FlexSpin (5.9.14-beta) Native code OK
P1 SPIN1 Brad's Spin Tool (any) Bytecode Unsupported
P1, P2 SPIN1, 2 Propeller Tool (any) Bytecode Unsupported
P1, P2 SPIN1, 2 PNut (any) Bytecode Unsupported

Limitations

  • Because of the max length of the syncword supported by the chip (8 bytes/64bits), the API for SyncWord() currently breaks the standard, by providing two parameters

sx1231-spin's People

Contributors

avsa242 avatar

Watchers

 avatar  avatar  avatar

sx1231-spin's Issues

SyncWord() isn't wireless.transceiver API compliant

SyncWord() should take one parameter - it currently has two: a read current/write new flag, and because the chip is capable of up to 8-byte syncwords, the syncword data parameter needs to be a pointer to a buffer to read into/write from.

Add support for reset pin

The chip has a reset pin (6) - this should have optional runtime support, so a slim Reset() could be used instead of the large-ish Defaults().

Add support for Channel()

It would be emulated, since the chip lacks a dedicated channel number register, but it should be reasonably straightforward to emulate it in software by using the current channel bandwidth.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.