diff --git a/README.md b/README.md
index 05ab1e04..6a0b7c16 100644
--- a/README.md
+++ b/README.md
@@ -51,9 +51,7 @@ See [CONTRIBUTING.md](./docs/CONTRIBUTING.md).
        Specify a negative number to disable a device decoding protocol (can be used multiple times)
   [-G] Enable blacklisted device decoding protocols, for testing only.
   [-X <spec> | help] Add a general purpose decoder (prepend -R 0 to disable all decoders)
-  [-l <level>] Change detection level used to determine pulses (0-16384) (0=auto) (default: 0)
-  [-z <value>] Override short value in data decoder
-  [-x <value>] Override long value in data decoder
+  [-Y level=<dB level>] Manual detection level used to determine pulses (-1.0 to -30.0) (0=auto)
   [-n <value>] Specify number of samples to take (each sample is 2 bytes: 1 each of I & Q)
   [-Y auto | classic | minmax] FSK pulse detector mode.
 		= Analyze/Debug options =
@@ -80,7 +78,7 @@ See [CONTRIBUTING.md](./docs/CONTRIBUTING.md).
        Use -d, -g, -R, -X, -F, -M, -r, -w, or -W without argument for more help
 
 
-
+R'
 		= Supported device protocols =
     [01]  Silvercrest Remote Control
     [02]  Rubicson Temperature Sensor
@@ -224,13 +222,13 @@ See [CONTRIBUTING.md](./docs/CONTRIBUTING.md).
     [146]  Auriol AFW2A1 temperature/humidity sensor
     [147]  TFA Drop Rain Gauge 30.3233.01
     [148]  DSC Security Contact (WS4945)
-    [149]  ERT SCM
-    [150]* Klimalogg/30.3180.IT (-f 868950000 -s 2400000)
-
+    [149]  ERT
+    [150]* Klimalogg
+    [151]  Visonic powercode
 
 * Disabled by default, use -R n or -G
 
-
+d'
 		= Input device selection =
 	RTL-SDR device driver is available.
   [-d <RTL-SDR USB device index>] (default: 0)
@@ -243,14 +241,14 @@ See [CONTRIBUTING.md](./docs/CONTRIBUTING.md).
   [-d rtl_tcp[:[//]host[:port]] (default: localhost:1234)
 	Specify host/port to connect to with e.g. -d rtl_tcp:127.0.0.1:1234
 
-
+g'
 		= Gain option =
   [-g <gain>] (default: auto)
 	For RTL-SDR: gain in dB ("0" is auto).
 	For SoapySDR: gain in dB for automatic distribution ("" is auto), or string of gain elements.
 	E.g. "LNA=20,TIA=8,PGA=2" for LimeSDR.
 
-
+X'
 		= Flex decoder spec =
 Use -X <spec> to add a flexible general purpose decoder.
 
@@ -307,7 +305,7 @@ Available options are:
 E.g. -X "n=doorbell,m=OOK_PWM,s=400,l=800,r=7000,g=1000,match={24}0xa9878c,repeats>=3"
 
 
-
+F'
 		= Output format option =
   [-F kv|json|csv|mqtt|influx|syslog|null] Produce decoded output in given format.
 	Without this option the default is KV output. Use "-F null" to remove the default.
@@ -328,7 +326,7 @@ E.g. -X "n=doorbell,m=OOK_PWM,s=400,l=800,r=7000,g=1000,match={24}0xa9878c,repea
 	  Additional parameter -M time:unix:usec:utc for correct timestamps in InfluxDB recommended
 	Specify host/port for syslog with e.g. -F syslog:127.0.0.1:1514
 
-
+M'
 		= Meta information option =
   [-M time[:<options>]|protocol|level|stats|bits|oldmodel] Add various metadata to every output line.
 	Use "time" to add current date and time meta data (preset for live inputs).
@@ -348,7 +346,7 @@ E.g. -X "n=doorbell,m=OOK_PWM,s=400,l=800,r=7000,g=1000,match={24}0xa9878c,repea
 	Use "bits" to add bit representation to code outputs (for debug).
 	Note: You can use "oldmodel" to get the old model keys. This will be removed shortly.
 
-
+r'
 		= Read file option =
   [-r <filename>] Read data from input file instead of a receiver
 	Parameters are detected from the full path, file name, and extension.
@@ -371,7 +369,7 @@ E.g. -X "n=doorbell,m=OOK_PWM,s=400,l=800,r=7000,g=1000,match={24}0xa9878c,repea
 	Reading from pipes also support format options.
 	E.g reading complex 32-bit float: CU32:-
 
-
+w'
 		= Write file option =
   [-w <filename>] Save data stream to output file (a '-' dumps samples to stdout)
   [-W <filename>] Save data stream to output file, overwrite existing file
diff --git a/man/man1/rtl_433.1 b/man/man1/rtl_433.1
index 75e3ac68..e4733437 100644
--- a/man/man1/rtl_433.1
+++ b/man/man1/rtl_433.1
@@ -80,14 +80,8 @@ Enable blacklisted device decoding protocols, for testing only.
 [ \fB\-X\fI <spec> | help\fP ]
 Add a general purpose decoder (prepend \-R 0 to disable all decoders)
 .TP
-[ \fB\-l\fI <level>\fP ]
-Change detection level used to determine pulses (0\-16384) (0=auto) (default: 0)
-.TP
-[ \fB\-z\fI <value>\fP ]
-Override short value in data decoder
-.TP
-[ \fB\-x\fI <value>\fP ]
-Override long value in data decoder
+[ \fB\-Y\fI level=<dB level>\fP ]
+Manual detection level used to determine pulses (\-1.0 to \-30.0) (0=auto)
 .TP
 [ \fB\-n\fI <value>\fP ]
 Specify number of samples to take (each sample is 2 bytes: 1 each of I & Q)
@@ -144,6 +138,9 @@ Hop/Quit after outputting successful event(s)
 [ \fB\-h\fI\fP ]
 Output this usage help and exit
        Use \-d, \-g, \-R, \-X, \-F, \-M, \-r, \-w, or \-W without argument for more help
+
+
+R'
 .SS "Supported device protocols"
 .TP
 [ \fB01\fI\fP ]
@@ -573,13 +570,17 @@ TFA Drop Rain Gauge 30.3233.01
 DSC Security Contact (WS4945)
 .TP
 [ \fB149\fI\fP ]
-ERT SCM
+ERT
 .TP
-[ \fB149\fI\fP ]
-Klimalogg/30.3180.IT
-
+[ \fB150\fI\fP ]
+* Klimalogg
+.TP
+[ \fB151\fI\fP ]
+Visonic powercode
 
 * Disabled by default, use \-R n or \-G
+
+d'
 .SS "Input device selection"
 .RS
 RTL\-SDR device driver is available.
@@ -610,6 +611,8 @@ To set gain for SoapySDR use \-g ELEM=val,ELEM=val,... e.g. \-g LNA=20,TIA=8,PGA
 .RS
 Specify host/port to connect to with e.g. \-d rtl_tcp:127.0.0.1:1234
 .RE
+
+g'
 .SS "Gain option"
 .TP
 [ \fB\-g\fI <gain>\fP ]
@@ -623,6 +626,8 @@ For SoapySDR: gain in dB for automatic distribution ("" is auto), or string of g
 .RS
 E.g. "LNA=20,TIA=8,PGA=2" for LimeSDR.
 .RE
+
+X'
 .SS "Flex decoder spec"
 Use \-X <spec> to add a flexible general purpose decoder.
 
@@ -737,6 +742,9 @@ countonly : suppress detailed row output
 .RE
 
 E.g. \-X "n=doorbell,m=OOK_PWM,s=400,l=800,r=7000,g=1000,match={24}0xa9878c,repeats>=3"
+
+
+F'
 .SS "Output format option"
 .TP
 [ \fB\-F\fI kv|json|csv|mqtt|influx|syslog|null\fP ]
@@ -792,6 +800,8 @@ Specify InfluxDB 1.x server with e.g. \-F "influx://localhost:8086/write?db=<db>
 .RS
 Specify host/port for syslog with e.g. \-F syslog:127.0.0.1:1514
 .RE
+
+M'
 .SS "Meta information option"
 .TP
 [ \fB\-M\fI time[:<options>]|protocol|level|stats|bits|oldmodel\fP ]
@@ -844,6 +854,8 @@ Use "bits" to add bit representation to code outputs (for debug).
 .RS
 Note: You can use "oldmodel" to get the old model keys. This will be removed shortly.
 .RE
+
+r'
 .SS "Read file option"
 .TP
 [ \fB\-r\fI <filename>\fP ]
@@ -893,6 +905,8 @@ Reading from pipes also support format options.
 .RS
 E.g reading complex 32\-bit float: CU32:\-
 .RE
+
+w'
 .SS "Write file option"
 .TP
 [ \fB\-w\fI <filename>\fP ]
diff --git a/vs15/rtl_433.vcxproj b/vs15/rtl_433.vcxproj
index 85105d72..3c5573a7 100644
--- a/vs15/rtl_433.vcxproj
+++ b/vs15/rtl_433.vcxproj
@@ -272,6 +272,7 @@ COPY ..\..\libusb\MS64\dll\libusb*.dll $(TargetDir)</Command>
     <ClCompile Include="..\src\devices\ts_ft002.c" />
     <ClCompile Include="..\src\devices\ttx201.c" />
     <ClCompile Include="..\src\devices\vaillant_vrt340f.c" />
+    <ClCompile Include="..\src\devices\visonic_powercode.c" />
     <ClCompile Include="..\src\devices\waveman.c" />
     <ClCompile Include="..\src\devices\wg_pb12v1.c" />
     <ClCompile Include="..\src\devices\ws2032.c" />
diff --git a/vs15/rtl_433.vcxproj.filters b/vs15/rtl_433.vcxproj.filters
index e777f994..dfc2da63 100644
--- a/vs15/rtl_433.vcxproj.filters
+++ b/vs15/rtl_433.vcxproj.filters
@@ -288,7 +288,7 @@
     </ClCompile>
     <ClCompile Include="..\src\devices\ert.c">
       <Filter>Source Files\devices</Filter>
-    </ClCompile> 
+    </ClCompile>
     <ClCompile Include="..\src\devices\esa.c">
       <Filter>Source Files\devices</Filter>
     </ClCompile>
@@ -553,6 +553,9 @@
     <ClCompile Include="..\src\devices\vaillant_vrt340f.c">
       <Filter>Source Files\devices</Filter>
     </ClCompile>
+    <ClCompile Include="..\src\devices\visonic_powercode.c">
+      <Filter>Source Files\devices</Filter>
+    </ClCompile>
     <ClCompile Include="..\src\devices\waveman.c">
       <Filter>Source Files\devices</Filter>
     </ClCompile>