diff --git a/src/devices/esperanza_ews.c b/src/devices/esperanza_ews.c
index a8df76d7..df49211c 100644
--- a/src/devices/esperanza_ews.c
+++ b/src/devices/esperanza_ews.c
@@ -11,7 +11,7 @@
 */
 /**
 Largely the same as kedsum, s3318p.
-\sa kedsum.c s3318p.c
+@sa kedsum.c s3318p.c
 
 Frame structure:
 
diff --git a/src/devices/fineoffset_wh1080.c b/src/devices/fineoffset_wh1080.c
index d8e3ef4b..3a8fc05b 100644
--- a/src/devices/fineoffset_wh1080.c
+++ b/src/devices/fineoffset_wh1080.c
@@ -1,7 +1,7 @@
 /** @file
     Fine Offset WH1080/WH3080 Weather Station
 */
-/** \fn int fineoffset_wh1080_callback(r_device *decoder, bitbuffer_t *bitbuffer)
+/** @fn int fineoffset_wh1080_callback(r_device *decoder, bitbuffer_t *bitbuffer)
 This module is based on Stanisław Pitucha ('viraptor' https://github.com/viraptor) code stub for the Digitech XC0348
 Weather Station, which seems to be a rebranded Fine Offset WH1080 Weather Station.
 
diff --git a/src/devices/kedsum.c b/src/devices/kedsum.c
index 4f95a821..0c7dc4b1 100644
--- a/src/devices/kedsum.c
+++ b/src/devices/kedsum.c
@@ -13,7 +13,7 @@
 */
 /**
 Largely the same as esperanza_ews, s3318p.
-\sa esperanza_ews.c s3318p.c
+@sa esperanza_ews.c s3318p.c
 
 Frame structure:
 
diff --git a/src/devices/lacrosse_tx35.c b/src/devices/lacrosse_tx35.c
index 8bbb7b9f..b824930a 100644
--- a/src/devices/lacrosse_tx35.c
+++ b/src/devices/lacrosse_tx35.c
@@ -12,33 +12,32 @@ Tune to 868240000Hz
 Protocol
 ========
 Example data : https://github.com/merbanan/rtl_433_tests/tree/master/tests/lacrosse/06/gfile-tx29.cu8
-~~~
-   a    a    2    d    d    4    9    2    8    4    4    8    6    a    e    c
-Bits :
-1010 1010 0010 1101 1101 0100 1001 0010 1000 0100 0100 1000 0110 1010 1110 1100
-Bytes num :
-----1---- ----2---- ----3---- ----4---- ----5---- ----6---- ----7---- ----8----
-~~~~~~~~~ 1st byte
-preamble, sequence 10B repeated 4 times (see below)
-          ~~~~~~~~~~~~~~~~~~~ bytes 2 and 3
-brand identifier, always 0x2dd4
-                              ~~~~ 1st nibble of bytes 4
-datalength (always 9) in nibble, including this field and crc
-                                   ~~~~ ~~ 2nd nibble of bytes 4 and 1st and 2nd bits of byte 5
-Random device id (6 bits)
-                                          ~ 3rd bits of byte 5
-new battery indicator
-                                           ~ 4th bits of byte 5
-unknown, unused
-                                             ~~~~ ~~~~ ~~~~ 2nd nibble of byte 5 and byte 6
-temperature, in bcd *10 +40
-                                                            ~ 1st bit of byte 7
-weak battery
-                                                             ~~~ ~~~~ 2-8 bits of byte 7
-humidity, in%. If == 0x6a : no humidity sensor
-                                                                      ~~~~ ~~~~ byte 8
-crc8 of bytes
-~~~
+
+       a    a    2    d    d    4    9    2    8    4    4    8    6    a    e    c
+    Bits :
+    1010 1010 0010 1101 1101 0100 1001 0010 1000 0100 0100 1000 0110 1010 1110 1100
+    Bytes num :
+    ----1---- ----2---- ----3---- ----4---- ----5---- ----6---- ----7---- ----8----
+    ~~~~~~~~~ 1st byte
+    preamble, sequence 10B repeated 4 times (see below)
+              ~~~~~~~~~~~~~~~~~~~ bytes 2 and 3
+    brand identifier, always 0x2dd4
+                                  ~~~~ 1st nibble of bytes 4
+    datalength (always 9) in nibble, including this field and crc
+                                       ~~~~ ~~ 2nd nibble of bytes 4 and 1st and 2nd bits of byte 5
+    Random device id (6 bits)
+                                              ~ 3rd bits of byte 5
+    new battery indicator
+                                               ~ 4th bits of byte 5
+    unknown, unused
+                                                 ~~~~ ~~~~ ~~~~ 2nd nibble of byte 5 and byte 6
+    temperature, in bcd *10 +40
+                                                                ~ 1st bit of byte 7
+    weak battery
+                                                                 ~~~ ~~~~ 2-8 bits of byte 7
+    humidity, in%. If == 0x6a : no humidity sensor
+                                                                          ~~~~ ~~~~ byte 8
+    crc8 of bytes
 
 Developer's comments
 ====================
@@ -47,16 +46,12 @@ It seems some sensor send a long preamble (33 bits, 0 / 1 alternated), and some
 six bits as the preamble. I own 3 sensors TX29, and two of them send a long preamble.
 So this decoder synchronize on the following sequence:
 
----------------------------------------------
+    1010 1000 1011 0111 0101 0010 01--
+       A    8    B    7    5    2    4
 
-1010 1000 1011 0111 0101 0010 01--
-   A    8    B    7    5    2    4
-
- 0 -  5 : short preabmle [101010B]
- 6 - 14 : brand identifier [2DD4h]
-15 - 19 : datalength [9]
-
----------------------------------------------
+-  0 -  5 : short preabmle [101010B]
+-  6 - 14 : brand identifier [2DD4h]
+- 15 - 19 : datalength [9]
 
 Short preamble example (sampling rate - 1Mhz):
 https://github.com/merbanan/rtl_433_tests/tree/master/tests/lacrosse/06/gfile-tx29-short-preamble.cu8.
@@ -102,9 +97,7 @@ static int lacrosse_it(r_device *decoder, bitbuffer_t *bitbuffer, int device29or
         // remove preamble and keep only five octets
         bitbuffer_extract_bytes(bitbuffer, brow, start_pos+22, out, 40);
 
-        /*
-         * Check message integrity (CRC/Checksum/parity)
-         */
+        // Check message integrity (CRC/Checksum/parity)
         r_crc = out[4];
         c_crc = crc8(&out[0], 4, LACROSSE_TX35_CRC_POLY, LACROSSE_TX35_CRC_INIT);
         if (r_crc != c_crc) {
@@ -114,10 +107,7 @@ static int lacrosse_it(r_device *decoder, bitbuffer_t *bitbuffer, int device29or
             continue; // DECODE_FAIL_MIC
         }
 
-        /*
-         * Now that message "envelope" has been validated,
-         * start parsing data.
-         */
+        // message "envelope" has been validated, start parsing data
         sensor_id   = ((out[0] & 0x0f) << 2) | (out[1] >> 6);
         temp_c      = 10.0 * (out[1] & 0x0f) + 1.0 * ((out[2] >> 4) & 0x0f) + 0.1 * (out[2] & 0x0f) - 40.0;
         newbatt     = (out[1] >> 5) & 1;
@@ -153,15 +143,17 @@ static int lacrosse_it(r_device *decoder, bitbuffer_t *bitbuffer, int device29or
 }
 
 /**
- ** Wrapper for the TX29 device
- **/
+Wrapper for the TX29 device.
+@sa lacrosse_it()
+*/
 static int lacrossetx29_callback(r_device *decoder, bitbuffer_t *bitbuffer) {
     return lacrosse_it(decoder, bitbuffer, LACROSSE_TX29_MODEL);
 }
 
 /**
- ** Wrapper for the TX35 device
- **/
+Wrapper for the TX35 device.
+@sa lacrosse_it()
+*/
 static int lacrossetx35_callback(r_device *decoder, bitbuffer_t *bitbuffer) {
     return lacrosse_it(decoder, bitbuffer, LACROSSE_TX35_MODEL);
 }
diff --git a/src/devices/s3318p.c b/src/devices/s3318p.c
index a1f69aae..6e74d2c8 100644
--- a/src/devices/s3318p.c
+++ b/src/devices/s3318p.c
@@ -11,7 +11,7 @@
 */
 /**
 Largely the same as esperanza_ews, kedsum.
-\sa esperanza_ews.c kedsum.c
+@sa esperanza_ews.c kedsum.c
 
 Also NC-5849-913 from Pearl (for FWS-310 station).