I’ve had them from several places and they all seem to be the same. They use the “RFX2401” amplifier with a non-standard layout.
The firmware allows creating a device with a easily configurable functionality including inputs, outputs, ADC, pulse counter/generator, I2C, external sensors.
I’ve placed all features on the separate page. It is too long.
- The status LED indicator works now.
- The firmware supports up to 8 GPIO inputs or outputs.
You may use the latest version of my configurable firmware with Sonoff Basic ZBR3. But only one external sensor is tested (Si7021)
This firmware allows you to create a Zigbee switch device with a flexible configuration of inputs and outputs. I’ve created a base firmware for CC2530, CC2530 + CC2590 , CC2530 + CC2591 and CC2530 + CC2592 chips. The attached configurator for Windows can write your device configuration to the selected base firmware. Then you can save the customized version to a separate HEX file and upload it to your device.
Inputs and outputs can work independently. So you may create a switch without a control button, or a simple button only.
The device with this firmware also works as a router.
Note: the firmware is designed for constantly powered devices.
Nowadays, some manufacturers offer boards with additional power amplifiers for the radio signal. These boards may cover a rather large area than the regular CC2530. The standard router firmware does not work with boards.
Therefore I’ve prepared particular versions of the router firmware.
How to select a CC2530 board
Ebay and Aliexpress offer several boards with the CC2530 chip (keyword: CC2530). You may select any board, but use the following criteria:
The guys on GitHub asked me to make a router firmware for СС2531 too. I’ve spent some time and prepared 3 variants:
- CC2531-router.hex – just a router, without diagnostics and a USB serial port.
- CC2531-router-diag.hex – a router with diagnostic reports and without a USB serial port.
- CC2531-router-diag-usb.hex – a router with diagnostic reports and a USB serial port. The firmware dumps diagnostic reports to the serial port too.
My smart home infrastructure contains several Xiaomi humidity/temperature and door sensors. I’ve used these sensors with the corresponding Xiaomi gateway. The gateway was connected with my BananaPi M2U and Pimatic. But my home is long and tall. One gateway does not cover all rooms and therefore far sensors disappear periodically.
I’ve googled and found I can use Xiaomi sockets (Zigbee edition) like Zigbee routers. This socket is less expensive than a new gateway and it has a smaller size. I’ve purchased tow sockets and used it about a month. This socket has a big problem (from my point of view). It can go into the deep sleep mode and cannot forward data packets from sensors.
Python has the pretty good library “WiringPi-Python“, but it depends on WiringPi2 for Raspberry Pi and cannot be installed automatically through pip. Here is a solution.
In my project I want to control a battery voltage and a charging state for my LiPo battery. Therefore I’ve added the ADS1115 board.
I’ve installed WiringPi2 for BPi and tried to read analog inputs through the gpio command line utility.
$ gpio -x ads1115:200:0x48 aread 200
The main disadvantage of this method for me is the default analog reading settings: 128 samples per second and +/-4.096V range (my battery voltage is 4.2V). You cannot change these setting in the command line utility.