This list of features becomes too long, and I’ve split it into several pages.
- Premium version
- Changelog
- General information (LEDs, pairing)
- Expert options
- Power saving mode or battery-powered devices
- Over-the-Air updates (OTA)
- RF signal level control
- GPIO inputs, outputs, and pull-ups
- Analog inputs (ADC), source voltage, an internal temperature
- UART
UART sensor - PWM
- LED firmware (WS2812B, Color control)
- Flower / Soil moisture sensor
- Keypad (matrix keyboard)
- Pulse generator and counter
- Group switch
- Pulse switch
- Bistable relay / Latching relay
- External sensors
- 1-wire sensors: DHT11, DHT12, DHT22, AM2301.
- DS18B20 (1-wire temperature sensor).
- I2C sensors. General information.
- Environmental sensors (I2C-compatible): BMP280, BME280, SI7021, HTU21D, HDC1080, HDC2080, SHT20, SHT30, SHT35 (select SHT30 in the configurator), SHT40, SHTC3, GXHTC3, TMP102 and others.
- SCD40/41 CO2, temperature and humidity sensor.
- Ambient light (I2C-compatible): BH1750.
- Current and voltage monitoring: INA219, INA226, INA3221.
- Thermocouple sensors MAX31855, MAX31865 (SPI).
- Air quality sensors: MHZ19, Senseair S8, Sensirion SPS30.
Air quality sensors: PM1006, PMSx003. - PZEM-004 V3.
- ACS712, ACS758.
- CCS811.
- MODBUS RTU.
- PCF8583: external counter.
- PCA9685: 16-channel PWM controller.
- HLW8032: VAC energy meter.
- Ultrasonic sensors HC-SR04, US-100, MaxSonar, URM06, URM07, JSN-SR04T and their clones.
- Digital rotary encoder.
- X9C102, X9C103, X9C104, X9C503 digitally controlled potentiometers.
- HX711 load cell/weight module.
- Real-time clock (RTC, DS3231, DS1307).
- Cron scheduler.
- E18-MS1PA2, E18-MS1PA2-IPX, E18-2G4Z27SI or E18-TBH-28 Test board.
- E72-2g4m20s1e
- Serial bootloader on CC2652 or CC1352. Flashing firmware through a COM port.
- CC2531 configurable router
- DIY examples
![](https://ptvo.info/wp-content/uploads/2020/05/img1-1.png)
Gerhard
Hi,
this is really beautiful work from you! I would like to implement the following:
The “on” signal is to be sent to the CC2530 via Z2M. When the CC2530 receives the signal, it should set an output to “ON” for 2 seconds and then automatically switch back to “OFF”. How can I implement this with your software?
A second question is whether I can already interpret the measurement data (e.g. with a fixed limit value) on the CC2530 when using an INA219 and whether this status is then published.
Measured value Status “OFF”
Measured value > 5V -> Status “ON”
Thanks a lot!
Owner
Hi,
1. Check the “Pulse switch” feature: https://ptvo.info/zigbee-configurable-firmware-features/pulse-switch/
2. Sorry, but you cannot implement this logic in the firmware.
Gerhard
Hello,
Thank you for your reply. I played around a bit and two questions came up.
Question 1:
Regarding the interpretation of the voltage values, I have tried it this way:
I use one pin configured as GPIO input (Input8: P07, Pull-down, Linke to out 8, Switch, Bind command On/Off). However, I only see the change in Z2M if this input GPIO is connected to a virtual pin (Out 8: P30, Role: Contact). Can I somehow configure the GPIO input (Input8: P07) as a sensor (e.g. like a window contact) without linking it to a virtual pin (Out 8: P30)?
Voltage at P07 = 0.0 V -> State Off
Voltage at P07 = 3.3 V -> State On
Question 2:
I use the custom converter to integrate the flashed CC2530 into Z2M. Is there a way to rename the configured pulse switches? At the moment they only appear as one number when they are passed on to Home Assistant
Owner
1. No, the contact sensor should be configured with a virtual pin. Why is it a problem?
2. You can edit the converter file in any text editor (e.g, Notepad) and add your description.
Andrea
I programmed the cc2530 as a switch and I configured the input pin 06 (free) as source voltage but I don’t see the battery level. I only display the link quality signal level.
Owner
In your case, the firmware should report voltage as a separate voltage sensor.
If the sensor does not appear, you can create a custom converter and add it to your system on the “Expert” tab.
The battery voltage is reported in the “Power saving mode” firmware only.
Clarkkent
With module E18 Ebyte, firmware support zigbee 1.2 or 3.0 ?
Owner
The firmware supports only zigbee 1.2 on CC2530 or CC2531.
Clarkkent
do you have plan support zigbee 3.0 in future ?
Owner
No, I do not plan it for CC2530 or CC2531
Clarkkent
what is module support zigbee 3.0 can flash ptvo’s firmware ?
Owner
You can use any module based on CC2652, CC1352 or CC2651 chips.
Bob
Support for the as3935 sensor (uses SPI, see https://blog.meteodrenthe.nl/2021/05/14/as3935-lightning-detector-with-wemos-d1-mini/) would be great!
Owner
You can always submit your suggestion on GitHub and other user may vote for it.
sumizome
Hi.
I would like it to support CC2530F128.
Owner
Sorry, but it is impossible. There is not enough flash space.
Marty
Hi, I have a mailbox sensor router device I’ve built using your firmware and a cc2530 module.
Currently I’m using a magnetic reed switch for two of the sensors on the mailbox for the letter slot flap etc, and a PIR motion detector on the round hole where newspapers /junk mail gets delivered.
The PIR sensor gets a lot of false positive results caused by changes in sunlight hitting mailbox or people walking past.
Is there any other sensor your firmware supports like a laser range switch etc..
(ultrasonic sensor won’t work as cars driving past or wind will set that off)
Things like VL6180 / TOF050C time of flight / range finder module which has an IIC interface.
Thanks.
Happy to pay for premium version if that is required…
Owner
Sorry, but the firmware does not support any laser range finder modules yet.
Paweł
The answer for my problem was to restart Zigbee2MQTT
It seems, that Z2M stores sets of (DeviceID/MAC, ManufacturerID, ModelID) in memory and simple “reflash and reconnect” isn’t enough.
So as it was stated somewehere about UnknownID it’s needed to:
– force delete
– reflash
– restart Zigbee2MQTT
– reconnect and it’s identified properly…
So thanks a lot for super configurable firmware 😀
Paweł
I try to create devices bo no matter what I change in configurator device is identified in Home Assistant/Zigbee2MQTT as “Custom devices (DiY) [Multi-channel relay switch](https://ptvo.info/zigbee-switch-configurable-firmware-router-199/) (ptvo.switch)”
Module is CC2530+CC2591, from aliexpress
it connects, it works as router bo no matter what I configure (button, led, DS18B20 thermometer), no matter what Manufacturer ID, Manufacturer name, Model ID it’s always identified as ptvo.switch, and exposes 16 endpoints…
What am I doing wrong?
I tried with version 2023-12-12 as well 2023-02-07 with same result
John
Does the firmware support a h-bridge PWM feature?, cant say I can see it in the documentation?
Owner
Sorry, but no.
JohnRob
I would like to send data both from external to host and host to external. The below from the Features page suggests text can only one way. I’ve tried a simple test with no success. I can send from external to host but not from host to external.
Is this still the situation? If it is, is there any plan for sending text in both directions?
Thanks
John
“The UART interface is designed to send text commands between an external device (e.g. Arduino) and a host. “
Owner
You can open an issue on GitHub and attach your settings, code or other info that can help to repeat this problem or suggest anything.
JohnRob
Thank you for your reply. Still leaves a question in my mind. I’m not sure what issue I should present in github.
Is the current UART version expected to only go from external to Hub
OR
should it be able to go both from external to hub AND hub to external?
Thanks
John
Owner
UART works in both directions. You can find more info here:
https://ptvo.info/zigbee-configurable-firmware-features/uart/
There, you can find an expected Zigbee data packet format.
munther
Hello pls i have question after i pay what will happen, do you need to remote my desktop to install or i can do it myself ? and if i format my pc can i download again on same pc or i will lose it forever, and thanks
Owner
You’ll receive a license code via email. The configuration program will ask you for this code when you save a firmware with premium features. You should do it yourself.
You can download the program from this website anytime. But you should save the license code in a safe place.
YONG LEE
Hello,
I’m trying to pair it with the Smartthings station. I have two issues.
1) After flashing the firmware, the device is in the pairing mode as I can see the fast blinking LED.
But Smartthings can’t find and pair. it can be paired only when I press the P1 button for 10 seconds.
How can I pair with it while fast blinking without pressing 10 seconds?
2) pressing 10 seconds and then success the pairing. Now I can control ON and OFF from the Smartthings app. But after powering off and on my Zigbee device, can not control it anymore from the Smartthings app. to do that should re-pair the device by pressing 10 seconds.
Could you help me?
Owner
Sorry, but I do not Smartthings and cannot test the firmware with it.
YONG LEE
I understand. By the way, is it possible to request to custom version for smartthings with payment?
Owner
I cannot make a custom version without testing with a real hub on my side. But this hub is expensive, and I do not plan to invest in it.
JohnRob
FWIW I’ve used a number of CC2530 boards with the PTVO firmware and had no issues pairing with Hubitat Hub. I suggest you look at the power sequence to reset your board.
JohnRob
BTW I do not enable the 10 second paring feature on my devices.
Last night I paired a CC2530 board connected to an SHT30 temperature sensor. After the required 3x 2 seconds on the device paired easily with my hub. It did however, take 40 to 50 seconds. I would think your smartThings hub would act the same.
Once paired I can un power the CC2530 board and repower without having to repair.
Daniel
If I configure an input (wall switch) to toggle an output (light), what happens if my Zigbee coordinator crashes? Will I still be able to manually control the light from the wall switch?
Thanks!
Owner
In you mean a linked output on the same device, it will work without a coordinator.
JohnRob
Is there any though about adding ZAC wire as used by the iST5xx sensor? I’m guessing not as the usage is probably too low.
Owner
You can add the corresponding topic on Gihub for voting.
AP
Hello, trying to use latest edition of your system to work with ioBroker, Here is my configuration:
I configured P00-P02 as inputs, P003, P004 as analog inputs with max 3.3, and P10, P12 as digital outputs. Here are my issues:
1)IoBroker shows change of input only during input transition edge, I expected it to be input level driven
2) IoBroker shows analog inputs, P04 is working fine, P03 shows fixed value 0.224 but both inputs are electrically connected.
3) ioBroker does not show outputs, instead shows digital inputs.
What am I doing wrong?
JohnRob
I’ve been away from PVTO for a while. Today I downloaded v1.9.0.3 Has the SHT30 Temperature sensor been depreciated?
If so can I download the last version with the SHT30?
Many thanks
John
Owner
It was moved to a separate group: Temperature sensors I2C.
greg
do you have linux version of config?
Owner
Sorry, but no. But you can use it in the emulation mode or a virtual machine.
Roland
Hi, having a hand full of devices created using the SHTC3 temp and humidity sensor, I notice quite some ” noise” in the temperature readings. Wondering whether the SHTC3 driver uses the normal mode or the power safe mode as the latter has a significant lower repeatability.
BTW, self designed PCB using SHTC3, BMP280 and DS18B20 sensors all using PTVO. Working like a charm.
Owner
In the psm mode, the firmware executes a single shot measurement on the sensor. Maybe, it may affect repeatability.
JohnRob
Hi,
Your software is amazing. I’ve built some sensors for use with a Home Automation Hub, specifically a distance sensor. Works flawlessly.
This is a hobby for me. However if I was asked to build a few more of the distance sensor for some other Home Automation hobbyists what is the limitation for using your software (or the created HEX file)?
I find I sleep better at night if I’m sure I’m not doing something against the rules 🙂
Thanks
John
Owner
Hi,
You might add a note that the firmware is based on PTVO :), or promote it in your community. Finally, you may purchase a premium version. It stimulates me to support and improve the firmware.
Pvl
Hi. Pls, add HX711.
Owner
Please add your request on Github. If other users will vote for it too, I’ll consider adding this sensor.
Darius
I mean to add the HX711 support
Owner
I collect votes for this feature on https://github.com/ptvoinfo/zigbee-configurable-firmware/issues
🙂
Ernie
How to configure the INA 219 (i2c) in Firmware Configurator?
Owner
You should configure it as any other I2C sensor:
https://ptvo.info/zigbee-configurable-firmware-features/external-sensors/i2c-sensor/
YONG LEE
Hi,
Thanks for the great firmware for my testing purpose.
I’ve used the firmware for temperature reporting via UART communication between MCU and Zigbee module from EBYTE. It works well but after some hours,,, the Zigbee module stops working…??
The UART message is “{“action”:{“PipeNo”:0,”Temperature”:21.44},”linkquality”:109,”state_l1″:”OFF”}”
How can I solve this issue?
Should I use Premium version for stable operation?
Owner
You do not need the Premium version for your configuration. It is unclear to me why your module stops. Do you have a status led? Does it report anything?
YONG LEE
Yes, I have a flash button with LED and status LED as well.
on normal operation status, press the flash button on the associated LED on/off toggle.
status LED blinks at a minute interval.
but at the stopped status non of the LED operation stops as well.
what should I check for this?
Owner
Could you add the “Uptime” sensor to your device? It should increment, and it means that the device works correctly. In any case, I would prefer an opened issue on Github. It is more comfortable to discuss this problem.
dimos
Hi,
I am trying to create a reed switch (door sensor). I have added the sensor to p12 and GND and on software i configured Input 1 P12 GPIO Pull-up and Linked to out 1 checked.
All the other optios empty.
I have succeffully paired it but i cannot see the sensor status anywhere.
Am i missing something ?
Thanks
Dimos
Anatoly
Basic question from first time user. In you firmware configurator there are choices: router, end device without routing, 16 channels, PSM.
Will it work as router AND end device in router configuration?
Owner
The router firmware implements a router device. It cannot work as an end device. All other options work as an end device.
Anatoly
Thank you
Walt
neither in premium version? my folks would like that a lot
Owner
Some functions cannot live together in one device.
Alex
Thank you so much for your reply.
Is it possible to set a mathematical function that the analog input values can be adapted?
Owner
IMHO, math functions are out of scope of an IOT device. You can always make the necessary calculation at the higher level.
Alex
Thank you so much for your reply.
Is it also possible to add a mathematical function which changes analog input data in a certain way?
Peter Molnar
Dear PTVO,
I’d like to reprise a former question: support for a display.
I’ve been looking for a battery powered “thermostat” that would send an on/off signal when setpoint temperatures are reached, but this seems to be a rather rare thing. Most on the market are out of stock, and even when they are available, they are disturbingly pricy.
It’d need is a temperature sensor (although adding humidity and luminance would make it an even nicer device), a rotary encoder, and a small display, along with two internal variables ( either setpoint and hysteresis or low and a high setpoint) that can be changed locally or remotely via zigbee. It would need to run on battery power.
The display only needs to be on when the temperature changed, but an oldschool, non-lightened LCD can last years on battery, therefore it shouldn’t be a problem.
I’d be happy to help and/or pay for the existence of such an option within your firmware, if it’s a possibility.
Owner
It should be a fully separate device, as I did it for LED. Unfortunately, I don’t have too much time to do it.
Alex
I have a question about a cc2530 chip and analog input. First of all is it possible to use a PT100 sensor with an analog input? If it is possible will it work in PSM mode? Is it also possible to use this sensor with Z-Stack_3.0.x?
Owner
1. Sorry, but I don’t know this sensor.
2. Analog input works in PSM.
3. The firmware for CC2530 uses ZStack 1.2. If you need ZStack 3, you can use cc2652.
anatoly
Assuming PT100 is platinum resistance thermometer (PRT), I don’t think that you can connect it directly to analog input, you may want to build simple conditioning circuit (constant current source and differential amplifier) to convert out put into an acceptable voltage range.
Owner
Yes, correct.
Roberto
Hi, congratulation for the nice and useful work.
One question:
is the mt-interface supported, in particular in the router device-type? If yes, how can i enable it? That could be very useful for me.
My device is a Sonoff 3.0 USB Dongle Plus equipped with a CC2652P chip.
Thank you in advance for the clarifications.
Owner
No, the MT interface is not supported (it is excluded at all).
dimos
Hi,
Very nice job…..
Does it support reed switch ? for handling door open /close ?
If not , can you add support for reed switch also ? (For extra charge of-course)
Regards
Owner
Hi. Is is a simple GPIO input with pull-up, and yes, the firmware supports it.
Gabriel
Hi. Question about firmware features. Are the “devices” Bindable? ie: Using one device as Switch (On_OFF) to turn On/OFF another device as a Light? I was trying to do that using ZHA (on HA) capability but it didn´t work. Is it a Premium Features or am I doing something wrong on
Owner
Yes, my firmware supports binding. It is the free feature.
JohnRob
Would you consider implementing the interface for a MAX31855? This is an I2C thermocouple interface.
Thanks
John
Owner
I am sorry but the firmware does not work with the SPI interface yet.
Nirm
I didn’t find a button to make a comment on page HLW8032. Is it disabled?
Owner
Thank you! I’ve enabled comments on that page too.
JohnRob
Just a simple note saying Thank you for your great utility/firmware. I used the UART capability on a CC2530 board. The Zigbee message is received by a Hubitat Hub. A simple driver was all that was needed to parse the UART message.
Works Great!
Thanks
Owner
Thank you! 🙂
JohnRob
I have a simple configuration for a SHT30 temperature humidity sensor. See below:
I am receiving messages from this device every 1 second or so. I’m not sure where to start troubleshooting.
I don’t know if it helps but the raw message is: Raw Description#read attr – raw: 59A901000C265500391F85AF416F0018B71C004204432C3434, dni: 59A9, endpoint: 01, cluster: 000C, size: 26, attrId: 0055, encoding: 39, command: 0A, value: 1F85AF416F0018B71C004204432C3434
I’m using a Hubitat Hub which and worked great with a BME280 sensor with your firmware.
Any troubleshooting suggestions would be appreciated.
Thanks
John
Board type: CC2530
Device type: Router
Status LED: P12 (Inversed), Sending reports
Set default reporting interval (s): 60
Output pins:
P13: Output 1, SHT30 (I2C SDA), External pull-up (Address (dec): 68)
P14: Output 2, I2C SCL, External pull-up
Owner
Please try to enable the “Disable configuring the interval remotely” option on the Expert tab.
JohnRob
Hi, I tried checking “disable configuring the interval remotely” with the same bad results, Messages were coming at < 1 second intervals. I had been using V1.6.2.3.
I then tried V1.6.0.2 and the responses were correct. Messages at 60 second intervals.
Also, the Zigbee parsing was more complete on the v1.6.0.2 message making me think the message structure was different.
I'm good for now. However I can give you additional information if you want to do further investigation.
BTW the version numbers quoted are from Windows … file/properities/details.
BR
John
Owner
Could you please add your issue on GitHub and add screenshots with your configuration and additional information that I can check on my side?
Nobodyman
Could you please explain which Zigbee stack version your software supports if using CC2530 device.
Thank you very much!
Owner
ZStack 1.2
JohnRob
Have you had any thoughts about adding support for an I2C display? Or perhaps an I2C “repeater”, although I’m not sure how this would work.
Thanks
John
Owner
I didn’t plan to add support for displays because it is a universal solution.
Giovanni
Hi, do you think it would be possible to add Wiegand support to your firmware? It would be very useful to build zigbee Wiegand id tag readers
Owner
Hi, sorry I didn’t plan to add the Wiegand interface.
Ken
Hi
Is it possible to configure a dimmer switch, so the device model is a ptvo.dimmer?
Reason for asking, is that a controller is identifying the device type and assigning correct device handler / driver setup for the device.
Owner
Yes, you can specify any model ID.
Ken
Do you have any examples for dimmer configuration?
Owner
It depends on your hardware. Usually, it is the PWM output.
Ken
So if you have a zigbee dimmer, where 2 inputs are connected to buttons for up and down, and an PWM output for controlling the light.
Long press on up increase value, short click go too maximum.
Long press on down decrease value, short click turn out light (go to minimum).
Do you have a configuration example for that 🙂
Owner
You can link only one button to an output. The button will change the light level circularly.
Ilya Rakhlin
Do you happen to have any experience or examples of getting any builds of your firmware working in ZHA (home assistant ZHA). All is working well with the z2m converter but I have a few friends I was hoping to use for beta testing a device who are on ZHA. I’ve previously written a few z2m converters but have very little experience with ZHA quirks. As I start to play around with it I just wanted to see if you had any examples or samples I could use as a jumping off point. Would be especially helpful if it uses the TemperatureMeasurementCluster or Humidity.
Thank you
Owner
Sorry, but I don’t have examples for ZHA.
Tube
What are the child and route table sizes for the cc2652?
Owner
The child table was compiled with the following key value:
MAX_DEVICE_TABLE_ENTRIES=50
Philip
Hello any chance to integrate HX711 Load Cell Amplifier to sensor list?
Owner
Hello, Sorry, but I didn’t plan to add this sensor.
Ilya Rakhlin
Just curious about sensor compatibility, I understand you may not have tested these but do you know if there are any reasons why the HDC2XXX line of sensors would work (https://www.ti.com/product/HDC1080 listed under similar on this page). According to a TI forum post they are firmware identical, https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/861532/hdc2010-technical-differences-among-hdc2080-hdc2010-hdc1080
In that same line of questions, SHT30 is listed as supported, it would seem the SHT31 and SHT35 are also firmware identical and differences are around accuracy, voltage, ect. I understand they may not be tested but is there any reason they would not work? With the current shortage of parts sometimes it easier to be flexible.
Owner
Yes, I cannot test all sensors and check compatibility. Maybe, other sensors will work.
Ilya Rakhlin
Just wanted to come back and say I finally got some cc2652p chips delivered and was able to test SHT35 (https://media.digikey.com/pdf/Data%20Sheets/Sensirion%20PDFs/HT_DS_SHT3x_DIS.pdf). Works without issue, seems to be reporting expected values.
Owner
Thank you for sharing your results :)!
Paul
Description of Zigbee2MQTT-Commands need a note on the required Zigbee2MQTT version. In Zigbee2MQTT 1.17.0 a new API was introduced. Using the format of the current documented commands will not work with Zigbee2MQTT versions >1.16. It would be helpful to get a hint about this circumstance.
Owner
I use v1.18 and these commands work. Could you please describe the format in your case?
Paul
The following zigbee2mqtt command is working fine in version 1.12.
-t zigbee2mqtt/garage/l3/set -m {\”trigger\”:800}
after upgrading to version 1.22. it’s no longer working. I played a bit with the new command syntax e.q -t zigbee2mqtt/garage/set -m {\”state_l3\”:800} but without success. So what is the correct format to initiate a trigger?
Shonn
The problem report:
I have an old power plug with a cc2530(external 32.00MHZ oscillator) and FM24C02C eeprom. Sometimes the plug cannot boot, the led keep the dim light state(the normal state is off or light).
I try to fix this problem with the configure of cc2530(without oscillator).