Skip to content

development fork of the Arduino library for SILICON LABS SI443x

License

Notifications You must be signed in to change notification settings

jnsbyr/Arduino-SI4432

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Si443x ISM Transceiver Library for Arduino

This library version is an enhancement of the origial GitHub project by ahmetipkin.

It can be an alternative to the RadioHead library when you are focused on the Si443x and need a specific combination of parameters that are not supported by the RadioHead library (e.g. Manchester encoding).

Boards

Example of boards with the Silicon Labs Si4430/31/32 chip:

  • 2.54mm pitch 433MHz
    Si4432-433MHz-2 54mm

  • 1.27mm pitch 433MHz
    Si4432-433MHz-1 27mm
    Pinout

Features

  • Support floating point values for frequency (MHz) and baud rate (kbps).

  • Select modulation type GFSK (default) or OOK.

  • Select Manchester encoding (default off).

  • Select packet handling (default on).

  • Select transmit power (default max).

  • Select blocking (default) or non-blocking transmit.

  • Select idle mode from standby, sleep, ready (default) and tune.

  • Boot config callback for individual chip settings (e.g. antenna switch)

  • Boot SyncWord validation:
    Sync Word 3 0x2D.
    Sync Word 2 0xD4.
    Sync Word 1 0x00.
    Sync Word 0 0x00.

  • Use SPI transactions. Legacy SPI communication works fine on ATMega with fixed CPU frequency, but doesn't work on CPUs like STM32 due to overclocking.

  • Configurable CS pin parameter.

  • Example code for transmit and receive.

Breaking Changes

  • Support pin 0, use 0xFF when pin is not available.

  • Removed delay in turnOn() to allow non-blocking wakeup.

  • Removed receive processing from sendPacket function.

  • Removed waitForPacket function.

Wiring

Si4432 UNO MEGA ESP8266 SAMD21
VCC -- 3.3V(*1) 3.3V 3.3V 3.3V
GND -- GND GND GND GND
SCK -- D13(*2) D52(*2) IO14 SCK
MISO -- D12 D50 IO12 MISO
MOSI -- D11(*2) D51(*2) IO13 MOSI
/SEL -- D10(*2) D10(*2) IO15 (*3)
SDN -- D7(*2) D7(*2) IO4 (*3)
/IRQ -- D2 D2 IO5 (*3)

(*1)
The Si443X requires up to 30 mA and may not work reliably when supplied from the MCU on-board 3v3 voltage regulator.
UNO's 3.3V output can supply 50 mA but the output current capacity of UNO-compatible devices is typically lower than that of official products.

(*2)
Si4432 is not 5V tolerant. You need to level shift between 5V and 3.3V, e.g. with this level shifter.

(*3) Configurable via constructor.

About

development fork of the Arduino library for SILICON LABS SI443x

Topics

Resources

License

Stars

Watchers

Forks

Languages

  • C++ 100.0%