commit 17d1d5e3d704d9ff8eb4998c4cc6ea1f11b3c96c Author: Wolfgang Hottgenroth Date: Wed May 2 11:13:17 2018 +0200 initial import diff --git a/export-media/2016-10-13_1.png b/export-media/2016-10-13_1.png new file mode 100644 index 0000000..66c881e Binary files /dev/null and b/export-media/2016-10-13_1.png differ diff --git a/export-media/2016-10-13_works.png b/export-media/2016-10-13_works.png new file mode 100644 index 0000000..04e7cfd Binary files /dev/null and b/export-media/2016-10-13_works.png differ diff --git a/export-media/2016-10-13_works_not.png b/export-media/2016-10-13_works_not.png new file mode 100644 index 0000000..a6f06c8 Binary files /dev/null and b/export-media/2016-10-13_works_not.png differ diff --git a/export-media/201609091558_0001.pdf b/export-media/201609091558_0001.pdf new file mode 100644 index 0000000..419a234 Binary files /dev/null and b/export-media/201609091558_0001.pdf differ diff --git a/export-media/201609091558_0002.pdf b/export-media/201609091558_0002.pdf new file mode 100644 index 0000000..f6d2b32 Binary files /dev/null and b/export-media/201609091558_0002.pdf differ diff --git a/export-media/20180430110848869_0001.jpg b/export-media/20180430110848869_0001.jpg new file mode 100644 index 0000000..b8a8f71 Binary files /dev/null and b/export-media/20180430110848869_0001.jpg differ diff --git a/export-media/20180430110848869_0001.jpg.1 b/export-media/20180430110848869_0001.jpg.1 new file mode 100644 index 0000000..b8a8f71 Binary files /dev/null and b/export-media/20180430110848869_0001.jpg.1 differ diff --git a/export-media/big-fat-iron.png b/export-media/big-fat-iron.png new file mode 100644 index 0000000..6ca2059 Binary files /dev/null and b/export-media/big-fat-iron.png differ diff --git a/export-media/bildschirmfoto-2016-03-03-um-21-48-49.png b/export-media/bildschirmfoto-2016-03-03-um-21-48-49.png new file mode 100644 index 0000000..4a932d1 Binary files /dev/null and b/export-media/bildschirmfoto-2016-03-03-um-21-48-49.png differ diff --git a/export-media/cropped-cropped-img_26294.jpg b/export-media/cropped-cropped-img_26294.jpg new file mode 100644 index 0000000..6d7f546 Binary files /dev/null and b/export-media/cropped-cropped-img_26294.jpg differ diff --git a/export-media/cropped-img_2629.jpg b/export-media/cropped-img_2629.jpg new file mode 100644 index 0000000..93d9cce Binary files /dev/null and b/export-media/cropped-img_2629.jpg differ diff --git a/export-media/cropped-img_26291.jpg b/export-media/cropped-img_26291.jpg new file mode 100644 index 0000000..b8f2ad4 Binary files /dev/null and b/export-media/cropped-img_26291.jpg differ diff --git a/export-media/cropped-img_26292.jpg b/export-media/cropped-img_26292.jpg new file mode 100644 index 0000000..6e46b2e Binary files /dev/null and b/export-media/cropped-img_26292.jpg differ diff --git a/export-media/cropped-img_26293.jpg b/export-media/cropped-img_26293.jpg new file mode 100644 index 0000000..9d6054b Binary files /dev/null and b/export-media/cropped-img_26293.jpg differ diff --git a/export-media/cropped-img_26294.jpg b/export-media/cropped-img_26294.jpg new file mode 100644 index 0000000..7b87988 Binary files /dev/null and b/export-media/cropped-img_26294.jpg differ diff --git a/export-media/cropped-img_2723.jpg b/export-media/cropped-img_2723.jpg new file mode 100644 index 0000000..07b0a5d Binary files /dev/null and b/export-media/cropped-img_2723.jpg differ diff --git a/export-media/drain.png b/export-media/drain.png new file mode 100644 index 0000000..1701fc1 Binary files /dev/null and b/export-media/drain.png differ diff --git a/export-media/foto-am-30-06-13-um-20-02.jpg b/export-media/foto-am-30-06-13-um-20-02.jpg new file mode 100644 index 0000000..9e26387 Binary files /dev/null and b/export-media/foto-am-30-06-13-um-20-02.jpg differ diff --git a/export-media/foto-am-30-06-13-um-20-021.jpg b/export-media/foto-am-30-06-13-um-20-021.jpg new file mode 100644 index 0000000..9e26387 Binary files /dev/null and b/export-media/foto-am-30-06-13-um-20-021.jpg differ diff --git a/export-media/git-signing-1.png b/export-media/git-signing-1.png new file mode 100644 index 0000000..c48fa6a Binary files /dev/null and b/export-media/git-signing-1.png differ diff --git a/export-media/git-signing-1.png.1 b/export-media/git-signing-1.png.1 new file mode 100644 index 0000000..c48fa6a Binary files /dev/null and b/export-media/git-signing-1.png.1 differ diff --git a/export-media/git-signing-2.png b/export-media/git-signing-2.png new file mode 100644 index 0000000..7bbb3c3 Binary files /dev/null and b/export-media/git-signing-2.png differ diff --git a/export-media/git-signing-2.png.1 b/export-media/git-signing-2.png.1 new file mode 100644 index 0000000..7bbb3c3 Binary files /dev/null and b/export-media/git-signing-2.png.1 differ diff --git a/export-media/git-signing-3.png b/export-media/git-signing-3.png new file mode 100644 index 0000000..c3e13a7 Binary files /dev/null and b/export-media/git-signing-3.png differ diff --git a/export-media/git-signing-3.png.1 b/export-media/git-signing-3.png.1 new file mode 100644 index 0000000..c3e13a7 Binary files /dev/null and b/export-media/git-signing-3.png.1 differ diff --git a/export-media/grosse-mutter.png b/export-media/grosse-mutter.png new file mode 100644 index 0000000..6198509 Binary files /dev/null and b/export-media/grosse-mutter.png differ diff --git a/export-media/img_0053.jpg b/export-media/img_0053.jpg new file mode 100644 index 0000000..0708d94 Binary files /dev/null and b/export-media/img_0053.jpg differ diff --git a/export-media/img_0054-e1476437702547.jpg b/export-media/img_0054-e1476437702547.jpg new file mode 100644 index 0000000..1654ffc Binary files /dev/null and b/export-media/img_0054-e1476437702547.jpg differ diff --git a/export-media/img_0055-e1476437685461.jpg b/export-media/img_0055-e1476437685461.jpg new file mode 100644 index 0000000..0605186 Binary files /dev/null and b/export-media/img_0055-e1476437685461.jpg differ diff --git a/export-media/img_0056.jpg b/export-media/img_0056.jpg new file mode 100644 index 0000000..a7fe5e6 Binary files /dev/null and b/export-media/img_0056.jpg differ diff --git a/export-media/img_0100-e1478087375824.jpg b/export-media/img_0100-e1478087375824.jpg new file mode 100644 index 0000000..af1e1f3 Binary files /dev/null and b/export-media/img_0100-e1478087375824.jpg differ diff --git a/export-media/img_01012-e1478087121580.jpg b/export-media/img_01012-e1478087121580.jpg new file mode 100644 index 0000000..f6105d2 Binary files /dev/null and b/export-media/img_01012-e1478087121580.jpg differ diff --git a/export-media/img_0105.jpg b/export-media/img_0105.jpg new file mode 100644 index 0000000..816b44f Binary files /dev/null and b/export-media/img_0105.jpg differ diff --git a/export-media/img_0111-e1478087101747.jpg b/export-media/img_0111-e1478087101747.jpg new file mode 100644 index 0000000..41645e4 Binary files /dev/null and b/export-media/img_0111-e1478087101747.jpg differ diff --git a/export-media/img_0140.jpg b/export-media/img_0140.jpg new file mode 100644 index 0000000..9171e0d Binary files /dev/null and b/export-media/img_0140.jpg differ diff --git a/export-media/img_0143-e1482141676335.jpg b/export-media/img_0143-e1482141676335.jpg new file mode 100644 index 0000000..6a56b7a Binary files /dev/null and b/export-media/img_0143-e1482141676335.jpg differ diff --git a/export-media/img_0144.jpg b/export-media/img_0144.jpg new file mode 100644 index 0000000..bd1b222 Binary files /dev/null and b/export-media/img_0144.jpg differ diff --git a/export-media/img_0146.jpg b/export-media/img_0146.jpg new file mode 100644 index 0000000..424660b Binary files /dev/null and b/export-media/img_0146.jpg differ diff --git a/export-media/img_0195.jpg b/export-media/img_0195.jpg new file mode 100644 index 0000000..51c3939 Binary files /dev/null and b/export-media/img_0195.jpg differ diff --git a/export-media/img_0304.jpg b/export-media/img_0304.jpg new file mode 100644 index 0000000..b7874a3 Binary files /dev/null and b/export-media/img_0304.jpg differ diff --git a/export-media/img_0307.jpg b/export-media/img_0307.jpg new file mode 100644 index 0000000..b21465c Binary files /dev/null and b/export-media/img_0307.jpg differ diff --git a/export-media/img_0308.jpg b/export-media/img_0308.jpg new file mode 100644 index 0000000..67a6bed Binary files /dev/null and b/export-media/img_0308.jpg differ diff --git a/export-media/img_0594.jpg b/export-media/img_0594.jpg new file mode 100644 index 0000000..ccce119 Binary files /dev/null and b/export-media/img_0594.jpg differ diff --git a/export-media/img_0813-e1473432862286.jpg b/export-media/img_0813-e1473432862286.jpg new file mode 100644 index 0000000..fc5afbf Binary files /dev/null and b/export-media/img_0813-e1473432862286.jpg differ diff --git a/export-media/img_0814.jpg b/export-media/img_0814.jpg new file mode 100644 index 0000000..753bd9e Binary files /dev/null and b/export-media/img_0814.jpg differ diff --git a/export-media/img_0818-e1473677307841.jpg b/export-media/img_0818-e1473677307841.jpg new file mode 100644 index 0000000..9a56dbd Binary files /dev/null and b/export-media/img_0818-e1473677307841.jpg differ diff --git a/export-media/img_0821-e1473677332189.jpg b/export-media/img_0821-e1473677332189.jpg new file mode 100644 index 0000000..903eafa Binary files /dev/null and b/export-media/img_0821-e1473677332189.jpg differ diff --git a/export-media/img_1211-e1457038834523.jpg b/export-media/img_1211-e1457038834523.jpg new file mode 100644 index 0000000..1762b5c Binary files /dev/null and b/export-media/img_1211-e1457038834523.jpg differ diff --git a/export-media/img_1212-e1457039094609.jpg b/export-media/img_1212-e1457039094609.jpg new file mode 100644 index 0000000..88a1b49 Binary files /dev/null and b/export-media/img_1212-e1457039094609.jpg differ diff --git a/export-media/img_2600.jpg b/export-media/img_2600.jpg new file mode 100644 index 0000000..57ea0b6 Binary files /dev/null and b/export-media/img_2600.jpg differ diff --git a/export-media/img_2611-e1418652448861.jpg b/export-media/img_2611-e1418652448861.jpg new file mode 100644 index 0000000..c61a250 Binary files /dev/null and b/export-media/img_2611-e1418652448861.jpg differ diff --git a/export-media/img_2616.jpg b/export-media/img_2616.jpg new file mode 100644 index 0000000..403e82f Binary files /dev/null and b/export-media/img_2616.jpg differ diff --git a/export-media/img_2621.jpg b/export-media/img_2621.jpg new file mode 100644 index 0000000..4e53fd3 Binary files /dev/null and b/export-media/img_2621.jpg differ diff --git a/export-media/img_2625-e1418651748893.jpg b/export-media/img_2625-e1418651748893.jpg new file mode 100644 index 0000000..ca6c1b4 Binary files /dev/null and b/export-media/img_2625-e1418651748893.jpg differ diff --git a/export-media/img_2626-e1418651784788.jpg b/export-media/img_2626-e1418651784788.jpg new file mode 100644 index 0000000..89a75fc Binary files /dev/null and b/export-media/img_2626-e1418651784788.jpg differ diff --git a/export-media/img_2627-e1418651817610.jpg b/export-media/img_2627-e1418651817610.jpg new file mode 100644 index 0000000..e75eb64 Binary files /dev/null and b/export-media/img_2627-e1418651817610.jpg differ diff --git a/export-media/img_2629.jpg b/export-media/img_2629.jpg new file mode 100644 index 0000000..9e68dba Binary files /dev/null and b/export-media/img_2629.jpg differ diff --git a/export-media/img_2630.jpg b/export-media/img_2630.jpg new file mode 100644 index 0000000..72dbaa2 Binary files /dev/null and b/export-media/img_2630.jpg differ diff --git a/export-media/img_2631.jpg b/export-media/img_2631.jpg new file mode 100644 index 0000000..cda029f Binary files /dev/null and b/export-media/img_2631.jpg differ diff --git a/export-media/img_2632-e1418651859564.jpg b/export-media/img_2632-e1418651859564.jpg new file mode 100644 index 0000000..eea7992 Binary files /dev/null and b/export-media/img_2632-e1418651859564.jpg differ diff --git a/export-media/img_26321.jpg b/export-media/img_26321.jpg new file mode 100644 index 0000000..cae262a Binary files /dev/null and b/export-media/img_26321.jpg differ diff --git a/export-media/img_2633-e1418651893112.jpg b/export-media/img_2633-e1418651893112.jpg new file mode 100644 index 0000000..7a94e68 Binary files /dev/null and b/export-media/img_2633-e1418651893112.jpg differ diff --git a/export-media/img_26331.jpg b/export-media/img_26331.jpg new file mode 100644 index 0000000..6634540 Binary files /dev/null and b/export-media/img_26331.jpg differ diff --git a/export-media/img_2723.jpg b/export-media/img_2723.jpg new file mode 100644 index 0000000..c1848cd Binary files /dev/null and b/export-media/img_2723.jpg differ diff --git a/export-media/img_2941-e1426606766331.jpg b/export-media/img_2941-e1426606766331.jpg new file mode 100644 index 0000000..0c4865d Binary files /dev/null and b/export-media/img_2941-e1426606766331.jpg differ diff --git a/export-media/img_2942-e1426607103291.jpg b/export-media/img_2942-e1426607103291.jpg new file mode 100644 index 0000000..ed3818a Binary files /dev/null and b/export-media/img_2942-e1426607103291.jpg differ diff --git a/export-media/img_2943-e1426607017130.jpg b/export-media/img_2943-e1426607017130.jpg new file mode 100644 index 0000000..58d985b Binary files /dev/null and b/export-media/img_2943-e1426607017130.jpg differ diff --git a/export-media/img_2944-e1426606813947.jpg b/export-media/img_2944-e1426606813947.jpg new file mode 100644 index 0000000..47bca3e Binary files /dev/null and b/export-media/img_2944-e1426606813947.jpg differ diff --git a/export-media/img_2945-e1426606881884.jpg b/export-media/img_2945-e1426606881884.jpg new file mode 100644 index 0000000..681519f Binary files /dev/null and b/export-media/img_2945-e1426606881884.jpg differ diff --git a/export-media/img_2946-e1426606909895.jpg b/export-media/img_2946-e1426606909895.jpg new file mode 100644 index 0000000..af97026 Binary files /dev/null and b/export-media/img_2946-e1426606909895.jpg differ diff --git a/export-media/img_2947-e1426607276880.jpg b/export-media/img_2947-e1426607276880.jpg new file mode 100644 index 0000000..2f8db64 Binary files /dev/null and b/export-media/img_2947-e1426607276880.jpg differ diff --git a/export-media/img_2948-e1426606963504.jpg b/export-media/img_2948-e1426606963504.jpg new file mode 100644 index 0000000..be3f0c1 Binary files /dev/null and b/export-media/img_2948-e1426606963504.jpg differ diff --git a/export-media/img_3151.jpg b/export-media/img_3151.jpg new file mode 100644 index 0000000..d9c7e72 Binary files /dev/null and b/export-media/img_3151.jpg differ diff --git a/export-media/img_3167.jpg b/export-media/img_3167.jpg new file mode 100644 index 0000000..1dab39b Binary files /dev/null and b/export-media/img_3167.jpg differ diff --git a/export-media/img_3168.jpg b/export-media/img_3168.jpg new file mode 100644 index 0000000..3798639 Binary files /dev/null and b/export-media/img_3168.jpg differ diff --git a/export-media/img_3234.jpg b/export-media/img_3234.jpg new file mode 100644 index 0000000..56fab40 Binary files /dev/null and b/export-media/img_3234.jpg differ diff --git a/export-media/img_3235.jpg b/export-media/img_3235.jpg new file mode 100644 index 0000000..3229c85 Binary files /dev/null and b/export-media/img_3235.jpg differ diff --git a/export-media/img_3258.png b/export-media/img_3258.png new file mode 100644 index 0000000..782a81c Binary files /dev/null and b/export-media/img_3258.png differ diff --git a/export-media/img_3805.jpg b/export-media/img_3805.jpg new file mode 100644 index 0000000..658ec95 Binary files /dev/null and b/export-media/img_3805.jpg differ diff --git a/export-media/img_3814.jpg b/export-media/img_3814.jpg new file mode 100644 index 0000000..bac1091 Binary files /dev/null and b/export-media/img_3814.jpg differ diff --git a/export-media/inverter0_2016-09-23-4.png b/export-media/inverter0_2016-09-23-4.png new file mode 100644 index 0000000..3671c91 Binary files /dev/null and b/export-media/inverter0_2016-09-23-4.png differ diff --git a/export-media/kupfer-flach.png b/export-media/kupfer-flach.png new file mode 100644 index 0000000..c3c6c30 Binary files /dev/null and b/export-media/kupfer-flach.png differ diff --git a/export-media/kupfer-hochkant.png b/export-media/kupfer-hochkant.png new file mode 100644 index 0000000..bbac71c Binary files /dev/null and b/export-media/kupfer-hochkant.png differ diff --git a/export-media/media.lst b/export-media/media.lst new file mode 100644 index 0000000..7182bfa --- /dev/null +++ b/export-media/media.lst @@ -0,0 +1,92 @@ +https://a385e5.files.wordpress.com/2014/12/tuned.png +https://a385e5.files.wordpress.com/2015/01/drain.png +https://a385e5.files.wordpress.com/2015/01/scan_006379.png +https://a385e5.files.wordpress.com/2014/12/img_2600.jpg +https://a385e5.files.wordpress.com/2014/12/big-fat-iron.png +https://a385e5.files.wordpress.com/2015/06/img_3258.png +https://a385e5.files.wordpress.com/2014/12/kupfer-hochkant.png +https://a385e5.files.wordpress.com/2015/06/cropped-img_2629.jpg +https://a385e5.files.wordpress.com/2015/06/cropped-img_26291.jpg +https://a385e5.files.wordpress.com/2014/12/kupfer-flach.png +https://a385e5.files.wordpress.com/2014/12/zinn.png +https://a385e5.files.wordpress.com/2015/01/img_2723.jpg +https://a385e5.files.wordpress.com/2014/12/grosse-mutter.png +https://a385e5.files.wordpress.com/2015/06/cropped-img_26294.jpg +https://a385e5.files.wordpress.com/2015/03/img_2944-e1426606813947.jpg +https://a385e5.files.wordpress.com/2015/03/img_2945-e1426606881884.jpg +https://a385e5.files.wordpress.com/2015/06/cropped-img_26292.jpg +https://a385e5.files.wordpress.com/2015/03/img_2946-e1426606909895.jpg +https://a385e5.files.wordpress.com/2015/03/img_2942-e1426607103291.jpg +https://a385e5.files.wordpress.com/2015/03/img_2948-e1426606963504.jpg +https://a385e5.files.wordpress.com/2014/12/img_2621.jpg +https://a385e5.files.wordpress.com/2015/03/img_2947-e1426607276880.jpg +https://a385e5.files.wordpress.com/2016/03/bildschirmfoto-2016-03-03-um-21-48-49.png +https://a385e5.files.wordpress.com/2015/06/img_3151.jpg +https://a385e5.files.wordpress.com/2015/03/img_2943-e1426607017130.jpg +https://a385e5.files.wordpress.com/2015/09/scan_006894.png +https://a385e5.files.wordpress.com/2015/03/img_2941-e1426606766331.jpg +https://a385e5.files.wordpress.com/2015/06/cropped-img_26293.jpg +https://a385e5.files.wordpress.com/2014/12/img_2625-e1418651748893.jpg +https://a385e5.files.wordpress.com/2014/12/img_2632-e1418651859564.jpg +https://a385e5.files.wordpress.com/2014/12/img_2633-e1418651893112.jpg +https://a385e5.files.wordpress.com/2014/12/img_2611-e1418652448861.jpg +https://a385e5.files.wordpress.com/2014/12/img_2627-e1418651817610.jpg +https://a385e5.files.wordpress.com/2014/12/img_2616.jpg +https://a385e5.files.wordpress.com/2014/12/img_2626-e1418651784788.jpg +https://a385e5.files.wordpress.com/2015/09/scan_006894_1.pdf +https://a385e5.files.wordpress.com/2014/12/img_2629.jpg +https://a385e5.files.wordpress.com/2014/12/img_2631.jpg +https://a385e5.files.wordpress.com/2014/12/img_26331.jpg +https://a385e5.files.wordpress.com/2014/12/img_26321.jpg +https://a385e5.files.wordpress.com/2014/12/img_2630.jpg +https://a385e5.files.wordpress.com/2016/09/201609091558_0002.pdf +https://a385e5.files.wordpress.com/2016/09/201609091558_0001.pdf +https://a385e5.files.wordpress.com/2015/09/img_3805.jpg +https://a385e5.files.wordpress.com/2015/06/img_3234.jpg +https://a385e5.files.wordpress.com/2016/03/img_1211-e1457038834523.jpg +https://a385e5.files.wordpress.com/2016/03/img_1212-e1457039094609.jpg +https://a385e5.files.wordpress.com/2015/06/img_3235.jpg +https://a385e5.files.wordpress.com/2015/06/img_3167.jpg +https://a385e5.files.wordpress.com/2015/09/img_3814.jpg +https://a385e5.files.wordpress.com/2015/06/img_3168.jpg +https://a385e5.files.wordpress.com/2016/09/img_0813-e1473432862286.jpg +https://a385e5.files.wordpress.com/2016/09/img_0821-e1473677332189.jpg +https://a385e5.files.wordpress.com/2016/09/img_0814.jpg +https://a385e5.files.wordpress.com/2016/09/img_0818-e1473677307841.jpg +https://a385e5.files.wordpress.com/2015/06/cropped-cropped-img_26294.jpg +https://a385e5.files.wordpress.com/2015/01/cropped-img_2723.jpg +https://a385e5.files.wordpress.com/2016/10/img_0053.jpg +https://a385e5.files.wordpress.com/2016/10/img_0054-e1476437702547.jpg +https://a385e5.files.wordpress.com/2016/10/img_0055-e1476437685461.jpg +https://a385e5.files.wordpress.com/2016/10/img_0056.jpg +https://a385e5.files.wordpress.com/2016/10/2016-10-13_works.png +https://a385e5.files.wordpress.com/2016/10/2016-10-13_works_not.png +https://a385e5.files.wordpress.com/2016/10/2016-10-13_1.png +https://a385e5.files.wordpress.com/2016/10/inverter0_2016-09-23-4.png +https://a385e5.files.wordpress.com/2016/11/img_0111-e1478087101747.jpg +https://a385e5.files.wordpress.com/2016/11/img_0100-e1478087375824.jpg +https://a385e5.files.wordpress.com/2016/11/sender_receiver.png +https://a385e5.files.wordpress.com/2016/11/img_0105.jpg +https://a385e5.files.wordpress.com/2016/11/img_01012-e1478087121580.jpg +https://a385e5.files.wordpress.com/2016/12/img_0140.jpg +https://a385e5.files.wordpress.com/2016/12/img_0144.jpg +https://a385e5.files.wordpress.com/2016/12/img_0146.jpg +https://a385e5.files.wordpress.com/2016/12/img_0143-e1482141676335.jpg +https://a385e5.files.wordpress.com/2017/07/rpi_ss1.png +https://a385e5.files.wordpress.com/2017/07/img_0594.jpg +https://a385e5.files.wordpress.com/2013/07/foto-am-30-06-13-um-20-02.jpg +https://a385e5.files.wordpress.com/2013/07/foto-am-30-06-13-um-20-021.jpg +https://a385e5.files.wordpress.com/2013/07/scan_005006-1024x654.jpg +https://a385e5.files.wordpress.com/2013/07/scan_005006_6.jpg +https://a385e5.files.wordpress.com/2013/07/scan_005006_5-1024x717.jpg +https://a385e5.files.wordpress.com/2013/07/scan_005006_4.jpg +https://a385e5.files.wordpress.com/2013/07/scan_005006_3.jpg +https://a385e5.files.wordpress.com/2013/07/scan_005006_2-1024x553.jpg +https://a385e5.files.wordpress.com/2018/02/img_0304.jpg +https://a385e5.files.wordpress.com/2018/02/img_0195.jpg +https://a385e5.files.wordpress.com/2018/02/img_0307.jpg +https://a385e5.files.wordpress.com/2018/02/img_0308.jpg +https://a385e5.files.wordpress.com/2018/03/git-signing-3.png +https://a385e5.files.wordpress.com/2018/04/20180430110848869_0001.jpg +https://a385e5.files.wordpress.com/2018/03/git-signing-1.png +https://a385e5.files.wordpress.com/2018/03/git-signing-2.png diff --git a/export-media/rpi_ss1.png b/export-media/rpi_ss1.png new file mode 100644 index 0000000..9aa4c54 Binary files /dev/null and b/export-media/rpi_ss1.png differ diff --git a/export-media/scan_005006-1024x654.jpg b/export-media/scan_005006-1024x654.jpg new file mode 100644 index 0000000..c06fb69 Binary files /dev/null and b/export-media/scan_005006-1024x654.jpg differ diff --git a/export-media/scan_005006_2-1024x553.jpg b/export-media/scan_005006_2-1024x553.jpg new file mode 100644 index 0000000..5fc0c0a Binary files /dev/null and b/export-media/scan_005006_2-1024x553.jpg differ diff --git a/export-media/scan_005006_3.jpg b/export-media/scan_005006_3.jpg new file mode 100644 index 0000000..58a829b Binary files /dev/null and b/export-media/scan_005006_3.jpg differ diff --git a/export-media/scan_005006_4.jpg b/export-media/scan_005006_4.jpg new file mode 100644 index 0000000..8716743 Binary files /dev/null and b/export-media/scan_005006_4.jpg differ diff --git a/export-media/scan_005006_5-1024x717.jpg b/export-media/scan_005006_5-1024x717.jpg new file mode 100644 index 0000000..149fe6e Binary files /dev/null and b/export-media/scan_005006_5-1024x717.jpg differ diff --git a/export-media/scan_005006_6.jpg b/export-media/scan_005006_6.jpg new file mode 100644 index 0000000..1839f9b Binary files /dev/null and b/export-media/scan_005006_6.jpg differ diff --git a/export-media/scan_006379.png b/export-media/scan_006379.png new file mode 100644 index 0000000..2ee07e9 Binary files /dev/null and b/export-media/scan_006379.png differ diff --git a/export-media/scan_006894.png b/export-media/scan_006894.png new file mode 100644 index 0000000..b1d9b8f Binary files /dev/null and b/export-media/scan_006894.png differ diff --git a/export-media/scan_006894_1.pdf b/export-media/scan_006894_1.pdf new file mode 100644 index 0000000..88b8ed0 Binary files /dev/null and b/export-media/scan_006894_1.pdf differ diff --git a/export-media/sender_receiver.png b/export-media/sender_receiver.png new file mode 100644 index 0000000..63f888a Binary files /dev/null and b/export-media/sender_receiver.png differ diff --git a/export-media/tuned.png b/export-media/tuned.png new file mode 100644 index 0000000..9492b7a Binary files /dev/null and b/export-media/tuned.png differ diff --git a/export-media/zinn.png b/export-media/zinn.png new file mode 100644 index 0000000..9555e26 Binary files /dev/null and b/export-media/zinn.png differ diff --git a/export-xml/a385e-5.wordpress.2018-05-02.xml b/export-xml/a385e-5.wordpress.2018-05-02.xml new file mode 100644 index 0000000..a91c005 --- /dev/null +++ b/export-xml/a385e-5.wordpress.2018-05-02.xml @@ -0,0 +1,8536 @@ + + + + + +a385e-5 +https://a385e5.wordpress.com +Projects just for fun +Wed, 02 May 2018 08:37:17 +0000 +en +1.2 +http://wordpress.com/ +https://a385e5.wordpress.com + + whottgenroth + wolfgang.hottgenroth@icloud.com + + + + + + 2710 + allgemein + + + + + 28627 + embedded + + + + + 79 + hardware + + + + + 2121118 + iot + + + + + 14706140 + mbus + + + + + 445979 + server-side + + + + + 243366 + smarthome + + + + + 1 + uncategorized + + + + + 14706142 + nav_menu + menu-1 + + +http://wordpress.com/ + + https://s0.wp.com/i/buttonw-com.png + a385e-5 + https://a385e5.wordpress.com + + + + <link>https://a385e5.wordpress.com/2016/10/12/732/</link> + <pubDate>Wed, 12 Oct 2016 08:07:24 +0000</pubDate> + <dc:creator>whottgenroth</dc:creator> + <guid isPermaLink="false">https://a385e5.wordpress.com/2016/10/12/732/</guid> + <description/> + <content:encoded><![CDATA[ ]]></content:encoded> + <excerpt:encoded><![CDATA[]]></excerpt:encoded> + <wp:post_id>732</wp:post_id> + <wp:post_date>2016-10-12 08:07:24</wp:post_date> + <wp:post_date_gmt>2016-10-12 08:07:24</wp:post_date_gmt> + <wp:comment_status>closed</wp:comment_status> + <wp:ping_status>closed</wp:ping_status> + <wp:post_name>732</wp:post_name> + <wp:status>publish</wp:status> + <wp:post_parent>0</wp:post_parent> + <wp:menu_order>4</wp:menu_order> + <wp:post_type>nav_menu_item</wp:post_type> + <wp:post_password/> + <wp:is_sticky>0</wp:is_sticky> + <category domain="nav_menu" nicename="menu-1"><![CDATA[Menu 1]]></category> + <wp:postmeta> + <wp:meta_key>_publicize_pending</wp:meta_key> + <wp:meta_value><![CDATA[1]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_type</wp:meta_key> + <wp:meta_value><![CDATA[post_type]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_object_id</wp:meta_key> + <wp:meta_value><![CDATA[309]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_menu_item_parent</wp:meta_key> + <wp:meta_value><![CDATA[0]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_object</wp:meta_key> + <wp:meta_value><![CDATA[page]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_target</wp:meta_key> + <wp:meta_value><![CDATA[]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_xfn</wp:meta_key> + <wp:meta_value><![CDATA[]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_url</wp:meta_key> + <wp:meta_value><![CDATA[]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_classes</wp:meta_key> + <wp:meta_value><![CDATA[a:1:{i:0;s:0:"";}]]></wp:meta_value> + </wp:postmeta> +</item> +<item> + <title>Poor man's op amp selection guide + https://a385e5.wordpress.com/2016/10/12/poor-mans-op-amp-selection-guide/ + Wed, 12 Oct 2016 08:07:25 +0000 + whottgenroth + https://a385e5.wordpress.com/2016/10/12/poor-mans-op-amp-selection-guide/ + + + + 733 + 2016-10-12 08:07:25 + 2016-10-12 08:07:25 + closed + closed + poor-mans-op-amp-selection-guide + publish + 0 + 5 + nav_menu_item + + 0 + + + _publicize_pending + + + + _menu_item_type + + + + _menu_item_menu_item_parent + + + + _menu_item_object_id + + + + _menu_item_object + + + + _menu_item_target + + + + _menu_item_xfn + + + + _menu_item_url + + + + _menu_item_classes + + + + + Impressum / other profiles + https://a385e5.wordpress.com/impressum/ + Wed, 26 Jun 2013 13:45:51 +0000 + whottgenroth + http://a385e-5.de/?page_id=2 + + https://gitlab.com/wolutator + +https://www.xing.com/profile/Wolfgang_Hottgenroth + +https://twitter.com/wollud1969]]> + + 5 + 2013-06-26 13:45:51 + 2013-06-26 13:45:51 + open + open + impressum + publish + 0 + 0 + page + + 0 + + _oembed_dc2d898caed5411000fa81558aecf45a + + + + _publicize_pending + + + + _wp_page_template + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + + + _oembed_5c78eaa2642fb8f2eb1cc6e2a4c65774 + + + + geo_public + + + + 1 + + biuro@media-serwis.pl + http://media-serwis.pl + 212.67.155.70 + 2015-11-09 12:49:53 + 2015-11-09 10:49:53 + + 1 + + 0 + 0 + + + 2 + + busallamasyon@outlook.com + + 151.250.59.102 + 2016-01-06 18:50:51 + 2016-01-06 16:50:51 + + 1 + + 0 + 0 + + + 3 + + wollud@a385e-5.de + + 85.115.56.180 + 2016-03-01 11:24:08 + 2016-03-01 09:24:08 + + 1 + + 2 + 88446352 + + + 4 + + wollud@a385e-5.de + + 85.115.56.180 + 2016-03-01 11:26:07 + 2016-03-01 09:26:07 + + 1 + + 1 + 88446352 + + + + Poor man's op amp selection guide + https://a385e5.wordpress.com/poor-mans-op-amp-selection-guide/ + Tue, 14 Jan 2014 14:52:58 +0000 + whottgenroth + http://a385e-5.de/?page_id=284 + + TL072 +General purpose JFET op. Wide supply voltage range (+/- 18V). No rail-to-rail operation. Considerable input offset voltage (3mV). + +TS912 +Rail-to-rail MOSFET op. Limited supply voltage range of 16V. Considerable input offset voltage (5mV). + +LM358 +Rail-to-ground operation, supply voltage up to 32V. Input offset voltage 2mV. + +LT1013 +Rail-to-ground operation, wide supply voltage range, up to +/- 22V. A bit expensive. Low input offset voltage (60uV) + +ICL7650 +Chopper-stabilized OP. Very low input offset voltage (1uV), limited supply voltage range +/-9V (total 18V).]]> + + 284 + 2014-01-14 14:52:58 + 2014-01-14 14:52:58 + closed + closed + poor-mans-op-amp-selection-guide + publish + 0 + 0 + page + + 0 + + _publicize_pending + + + + _edit_last + + + + _wp_page_template + + + + original_post_id + + + + _wp_old_slug + + + + + Home + https://a385e5.wordpress.com/2016/10/11/home/ + Tue, 11 Oct 2016 14:57:12 +0000 + whottgenroth + https://a385e5.wordpress.com/2016/10/11/home + + + + 285 + 2016-10-11 14:57:12 + 2016-10-11 14:57:12 + closed + closed + home + publish + 0 + 1 + nav_menu_item + + 0 + + + _publicize_pending + + + + _menu_item_type + + + + _menu_item_menu_item_parent + + + + _menu_item_object_id + + + + _menu_item_object + + + + _menu_item_target + + + + _menu_item_classes + + + + _menu_item_xfn + + + + _menu_item_url + + + + + + <link>https://a385e5.wordpress.com/2016/10/11/286/</link> + <pubDate>Tue, 11 Oct 2016 14:57:12 +0000</pubDate> + <dc:creator>whottgenroth</dc:creator> + <guid isPermaLink="false">https://a385e5.wordpress.com/2016/10/11</guid> + <description/> + <content:encoded><![CDATA[ ]]></content:encoded> + <excerpt:encoded><![CDATA[]]></excerpt:encoded> + <wp:post_id>286</wp:post_id> + <wp:post_date>2016-10-11 14:57:12</wp:post_date> + <wp:post_date_gmt>2016-10-11 14:57:12</wp:post_date_gmt> + <wp:comment_status>closed</wp:comment_status> + <wp:ping_status>closed</wp:ping_status> + <wp:post_name>286</wp:post_name> + <wp:status>publish</wp:status> + <wp:post_parent>0</wp:post_parent> + <wp:menu_order>3</wp:menu_order> + <wp:post_type>nav_menu_item</wp:post_type> + <wp:post_password/> + <wp:is_sticky>0</wp:is_sticky> + <category domain="nav_menu" nicename="menu-1"><![CDATA[Menu 1]]></category> + <wp:postmeta> + <wp:meta_key>_publicize_pending</wp:meta_key> + <wp:meta_value><![CDATA[1]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_type</wp:meta_key> + <wp:meta_value><![CDATA[post_type]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_menu_item_parent</wp:meta_key> + <wp:meta_value><![CDATA[0]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_object_id</wp:meta_key> + <wp:meta_value><![CDATA[5]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_object</wp:meta_key> + <wp:meta_value><![CDATA[page]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_target</wp:meta_key> + <wp:meta_value><![CDATA[]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_classes</wp:meta_key> + <wp:meta_value><![CDATA[a:1:{i:0;s:0:"";}]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_xfn</wp:meta_key> + <wp:meta_value><![CDATA[]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_url</wp:meta_key> + <wp:meta_value><![CDATA[]]></wp:meta_value> + </wp:postmeta> +</item> +<item> + <title>Interesting parts + https://a385e5.wordpress.com/interesting-parts/ + Tue, 14 Jan 2014 15:03:35 +0000 + whottgenroth + http://a385e-5.de/?page_id=309 + + +
  • All the op-amps in the Poor man's op amp selection guide
  • +
  • LF398 - Sample and Hold Circuit
  • +
  • LM2577 - Step-Up Converter (3A in-current)
  • +
  • L4962 - 1.5A Step-Down Converter
  • +
  • MAX187 - 12bit ADC with SPI interface
  • +
  • LTC1257 - 12bit DAC with SPI interface
  • +
  • BS108 - small MOSFET transistor
  • +
  • BF245 - small JFET transistor
  • +
  • MAX3100 - UART with SPI interface
  • +
  • L293D - dual full H bridge driver with recovery diodes (600mA)
  • +
  • L298 - dual full H bridge driver (4A)
  • +
  • L297 - Stepper Motor Controller
  • +
  • AD633 - Analog Multiplier
  • +
  • All kinds of Arduino boards, specifically Arduino Uno, Arduino Mega, Arduino Ethernet, Arduino Micro, Arduino Due, Teensy, Netduino
  • +
  • AD7190 - four channel 24bit ADC with SPI interface
  • +
  • TSS721A - MeterBus client transceiver
  • +
  • MAX485 - Transceiver for RS485
  • + + + + + + + + + + +]]>
    + + 309 + 2014-01-14 15:03:35 + 2014-01-14 15:03:35 + closed + closed + interesting-parts + publish + 0 + 0 + page + + 0 + + _publicize_pending + + + + _edit_last + + + + _wp_page_template + + + + original_post_id + + + + _wp_old_slug + + +
    + + tuned + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/tuned/ + Mon, 15 Dec 2014 12:48:17 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/tuned.png + + + + 518 + 2014-12-15 14:48:17 + 2014-12-15 12:48:17 + closed + closed + tuned + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/tuned.png + + pre_import_post_parent + + + + pre_import_post_id + + + + _edit_last + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + drain + https://a385e5.wordpress.com/2015/01/01/a-small-royer-induction-heater/drain/ + Thu, 01 Jan 2015 19:31:43 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/01/drain.png + + + + 568 + 2015-01-01 21:31:43 + 2015-01-01 19:31:43 + open + open + drain + inherit + 564 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/01/drain.png + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + scan_006379 + https://a385e5.wordpress.com/2015/01/01/a-small-royer-induction-heater/scan_006379/ + Thu, 01 Jan 2015 19:38:25 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/01/scan_006379.png + + + + 571 + 2015-01-01 21:38:25 + 2015-01-01 19:38:25 + open + open + scan_006379 + inherit + 564 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/01/scan_006379.png + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2600 + https://a385e5.wordpress.com/2014/12/11/measuring-the-speed-of-a-salad-spinner/img_2600/ + Thu, 11 Dec 2014 14:07:01 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/img_2600.jpg + + + + 508 + 2014-12-11 16:07:01 + 2014-12-11 14:07:01 + open + open + img_2600 + inherit + 506 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/img_2600.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + big-fat-iron + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/big-fat-iron/ + Mon, 15 Dec 2014 19:27:19 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/big-fat-iron.png + + + + 546 + 2014-12-15 21:27:19 + 2014-12-15 19:27:19 + closed + closed + big-fat-iron + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/big-fat-iron.png + + pre_import_post_parent + + + + pre_import_post_id + + + + _edit_last + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_3258 + https://a385e5.wordpress.com/2015/06/05/relaybox/img_3258/ + Fri, 05 Jun 2015 10:58:01 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/06/img_3258.png + + + + 624 + 2015-06-05 12:58:01 + 2015-06-05 10:58:01 + open + open + img_3258 + inherit + 620 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/06/img_3258.png + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + kupfer-hochkant + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/kupfer-hochkant/ + Mon, 15 Dec 2014 19:18:18 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/kupfer-hochkant.png + + + + 541 + 2014-12-15 21:18:18 + 2014-12-15 19:18:18 + closed + closed + kupfer-hochkant + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/kupfer-hochkant.png + + pre_import_post_parent + + + + pre_import_post_id + + + + _edit_last + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + cropped-IMG_2629.jpg + https://a385e5.wordpress.com/cropped-img_2629-jpg/ + Fri, 05 Jun 2015 11:36:26 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/06/cropped-img_2629.jpg + + + + 648 + 2015-06-05 13:36:26 + 2015-06-05 11:36:26 + open + open + cropped-img_2629-jpg + inherit + 0 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/06/cropped-img_2629.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _wp_attachment_context + + + + _wp_attachment_custom_header_last_used_twentythirteen + + + + _wp_attachment_is_custom_header + + + + _original_import_url + + + + + cropped-IMG_26291.jpg + https://a385e5.wordpress.com/cropped-img_26291-jpg/ + Fri, 05 Jun 2015 12:10:00 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/06/cropped-img_26291.jpg + + + + 660 + 2015-06-05 14:10:00 + 2015-06-05 12:10:00 + open + open + cropped-img_26291-jpg + inherit + 0 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/06/cropped-img_26291.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _wp_attachment_context + + + + _wp_attachment_custom_header_last_used_twentytwelve + + + + _wp_attachment_is_custom_header + + + + _original_import_url + + + + + kupfer-flach + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/kupfer-flach/ + Mon, 15 Dec 2014 19:06:49 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/kupfer-flach.png + + + + 535 + 2014-12-15 21:06:49 + 2014-12-15 19:06:49 + closed + closed + kupfer-flach + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/kupfer-flach.png + + pre_import_post_parent + + + + pre_import_post_id + + + + _edit_last + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + zinn + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/zinn/ + Mon, 15 Dec 2014 19:25:20 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/zinn.png + + + + 543 + 2014-12-15 21:25:20 + 2014-12-15 19:25:20 + closed + closed + zinn + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/zinn.png + + pre_import_post_parent + + + + pre_import_post_id + + + + _edit_last + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2723 + https://a385e5.wordpress.com/2015/01/01/a-small-royer-induction-heater/img_2723/ + Thu, 01 Jan 2015 19:28:11 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/01/img_2723.jpg + + + + 565 + 2015-01-01 21:28:11 + 2015-01-01 19:28:11 + open + open + img_2723 + inherit + 564 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/01/img_2723.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + grosse-mutter + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/grosse-mutter/ + Mon, 15 Dec 2014 19:26:40 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/grosse-mutter.png + + + + 544 + 2014-12-15 21:26:40 + 2014-12-15 19:26:40 + closed + closed + grosse-mutter + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/grosse-mutter.png + + pre_import_post_parent + + + + pre_import_post_id + + + + _edit_last + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + cropped-IMG_26294.jpg + https://a385e5.wordpress.com/cropped-img_26294-jpg/ + Fri, 05 Jun 2015 12:16:42 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/06/cropped-img_26294.jpg + + + + 663 + 2015-06-05 14:16:42 + 2015-06-05 12:16:42 + open + open + cropped-img_26294-jpg + inherit + 0 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/06/cropped-img_26294.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _wp_attachment_context + + + + _wp_attachment_custom_header_last_used_twentyfourteen + + + + _wp_attachment_is_custom_header + + + + _original_import_url + + + + + IMG_2944 + https://a385e5.wordpress.com/2015/06/17/a-fully-digital-controlled-smps-for-up-to-100v-1-5kw/img_2944/ + Tue, 17 Mar 2015 15:38:56 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/03/img_2944-e1426606813947.jpg + + + + 583 + 2015-03-17 17:38:56 + 2015-03-17 15:38:56 + open + open + img_2944 + inherit + 575 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/03/img_2944-e1426606813947.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2945 + https://a385e5.wordpress.com/2015/06/17/a-fully-digital-controlled-smps-for-up-to-100v-1-5kw/img_2945/ + Tue, 17 Mar 2015 15:38:26 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/03/img_2945-e1426606881884.jpg + + + + 576 + 2015-03-17 17:38:26 + 2015-03-17 15:38:26 + open + open + img_2945 + inherit + 575 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/03/img_2945-e1426606881884.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + cropped-IMG_26292.jpg + https://a385e5.wordpress.com/cropped-img_26292-jpg/ + Fri, 05 Jun 2015 12:12:53 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/06/cropped-img_26292.jpg + + + + 661 + 2015-06-05 14:12:53 + 2015-06-05 12:12:53 + open + open + cropped-img_26292-jpg + inherit + 0 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/06/cropped-img_26292.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _wp_attachment_context + + + + _wp_attachment_custom_header_last_used_twentyfourteen + + + + _wp_attachment_is_custom_header + + + + _original_import_url + + + + + IMG_2946 + https://a385e5.wordpress.com/2015/06/17/a-fully-digital-controlled-smps-for-up-to-100v-1-5kw/img_2946/ + Tue, 17 Mar 2015 15:38:29 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/03/img_2946-e1426606909895.jpg + + + + 577 + 2015-03-17 17:38:29 + 2015-03-17 15:38:29 + open + open + img_2946 + inherit + 575 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/03/img_2946-e1426606909895.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2942 + https://a385e5.wordpress.com/2015/06/17/a-fully-digital-controlled-smps-for-up-to-100v-1-5kw/img_2942/ + Tue, 17 Mar 2015 15:38:47 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/03/img_2942-e1426607103291.jpg + + + + 581 + 2015-03-17 17:38:47 + 2015-03-17 15:38:47 + open + open + img_2942 + inherit + 575 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/03/img_2942-e1426607103291.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2948 + https://a385e5.wordpress.com/2015/06/17/a-fully-digital-controlled-smps-for-up-to-100v-1-5kw/img_2948/ + Tue, 17 Mar 2015 15:38:38 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/03/img_2948-e1426606963504.jpg + + + + 579 + 2015-03-17 17:38:38 + 2015-03-17 15:38:38 + open + open + img_2948 + inherit + 575 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/03/img_2948-e1426606963504.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2621 + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/img_2621/ + Mon, 15 Dec 2014 19:31:12 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/img_2621.jpg + + + + 551 + 2014-12-15 21:31:12 + 2014-12-15 19:31:12 + closed + closed + img_2621 + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/img_2621.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _edit_last + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2947 + https://a385e5.wordpress.com/2015/06/17/a-fully-digital-controlled-smps-for-up-to-100v-1-5kw/img_2947/ + Tue, 17 Mar 2015 15:38:34 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/03/img_2947-e1426607276880.jpg + + + + 578 + 2015-03-17 17:38:34 + 2015-03-17 15:38:34 + open + open + img_2947 + inherit + 575 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/03/img_2947-e1426607276880.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + Bildschirmfoto 2016-03-03 um 21.48.49 + https://a385e5.wordpress.com/2016/03/03/why-always-spi-cs-on-pin-10/bildschirmfoto-2016-03-03-um-21-48-49/ + Thu, 03 Mar 2016 20:52:13 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/03/bildschirmfoto-2016-03-03-um-21-48-49.png + + + + 711 + 2016-03-03 22:52:13 + 2016-03-03 20:52:13 + open + closed + bildschirmfoto-2016-03-03-um-21-48-49 + inherit + 710 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/03/bildschirmfoto-2016-03-03-um-21-48-49.png + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_3151 + https://a385e5.wordpress.com/2015/06/05/wifi-powermeter/img_3151/ + Fri, 05 Jun 2015 09:31:18 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/06/img_3151.jpg + + + + 593 + 2015-06-05 11:31:18 + 2015-06-05 09:31:18 + open + open + img_3151 + inherit + 588 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/06/img_3151.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2943 + https://a385e5.wordpress.com/2015/06/17/a-fully-digital-controlled-smps-for-up-to-100v-1-5kw/img_2943/ + Tue, 17 Mar 2015 15:38:52 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/03/img_2943-e1426607017130.jpg + + + + 582 + 2015-03-17 17:38:52 + 2015-03-17 15:38:52 + open + open + img_2943 + inherit + 575 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/03/img_2943-e1426607017130.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + scan_006894 + https://a385e5.wordpress.com/2015/09/14/first-esp8266-project-wifi-power-switch/scan_006894/ + Mon, 14 Sep 2015 20:11:18 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/09/scan_006894.png + + + + 675 + 2015-09-14 22:11:18 + 2015-09-14 20:11:18 + open + closed + scan_006894 + inherit + 671 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/09/scan_006894.png + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2941 + https://a385e5.wordpress.com/2015/06/17/a-fully-digital-controlled-smps-for-up-to-100v-1-5kw/img_2941/ + Tue, 17 Mar 2015 15:38:42 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/03/img_2941-e1426606766331.jpg + + + + 580 + 2015-03-17 17:38:42 + 2015-03-17 15:38:42 + open + open + img_2941 + inherit + 575 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/03/img_2941-e1426606766331.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + cropped-IMG_26293.jpg + https://a385e5.wordpress.com/cropped-img_26293-jpg/ + Fri, 05 Jun 2015 12:14:58 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/06/cropped-img_26293.jpg + + + + 662 + 2015-06-05 14:14:58 + 2015-06-05 12:14:58 + open + open + cropped-img_26293-jpg + inherit + 0 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/06/cropped-img_26293.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _wp_attachment_context + + + + _wp_attachment_custom_header_last_used_twentyfifteen + + + + _wp_attachment_is_custom_header + + + + _original_import_url + + + + + IMG_2625 + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/img_2625/ + Mon, 15 Dec 2014 13:54:54 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/img_2625-e1418651748893.jpg + + + + 526 + 2014-12-15 15:54:54 + 2014-12-15 13:54:54 + open + open + img_2625 + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/img_2625-e1418651748893.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2632 + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/img_2632/ + Mon, 15 Dec 2014 13:57:21 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/img_2632-e1418651859564.jpg + + + + 529 + 2014-12-15 15:57:21 + 2014-12-15 13:57:21 + open + open + img_2632 + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/img_2632-e1418651859564.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2633 + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/img_2633/ + Mon, 15 Dec 2014 13:57:56 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/img_2633-e1418651893112.jpg + + + + 530 + 2014-12-15 15:57:56 + 2014-12-15 13:57:56 + open + open + img_2633 + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/img_2633-e1418651893112.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2611 + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/img_2611/ + Mon, 15 Dec 2014 14:00:35 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/img_2611-e1418652448861.jpg + + + + 531 + 2014-12-15 16:00:35 + 2014-12-15 14:00:35 + open + open + img_2611 + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/img_2611-e1418652448861.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2627 + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/img_2627/ + Mon, 15 Dec 2014 13:56:39 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/img_2627-e1418651817610.jpg + + + + 528 + 2014-12-15 15:56:39 + 2014-12-15 13:56:39 + closed + closed + img_2627 + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/img_2627-e1418651817610.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _edit_last + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2616 + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/img_2616/ + Mon, 15 Dec 2014 19:30:00 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/img_2616.jpg + + + + 549 + 2014-12-15 21:30:00 + 2014-12-15 19:30:00 + open + open + img_2616 + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/img_2616.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2626 + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/img_2626/ + Mon, 15 Dec 2014 13:56:03 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/img_2626-e1418651784788.jpg + + + + 527 + 2014-12-15 15:56:03 + 2014-12-15 13:56:03 + open + open + img_2626 + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/img_2626-e1418651784788.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + scan_006894_1 + https://a385e5.wordpress.com/2015/09/14/first-esp8266-project-wifi-power-switch/scan_006894_1/ + Mon, 14 Sep 2015 20:11:21 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/09/scan_006894_1.pdf + + + + 676 + 2015-09-14 22:11:21 + 2015-09-14 20:11:21 + open + closed + scan_006894_1 + inherit + 671 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/09/scan_006894_1.pdf + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2629 + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/img_2629/ + Mon, 15 Dec 2014 19:05:05 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/img_2629.jpg + + + + 532 + 2014-12-15 21:05:05 + 2014-12-15 19:05:05 + open + open + img_2629 + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/img_2629.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2631 + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/img_2631/ + Mon, 15 Dec 2014 19:18:10 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/img_2631.jpg + + + + 540 + 2014-12-15 21:18:10 + 2014-12-15 19:18:10 + closed + closed + img_2631 + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/img_2631.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _edit_last + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2633 + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/img_2633-2/ + Mon, 15 Dec 2014 19:27:06 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/img_26331.jpg + + + + 545 + 2014-12-15 21:27:06 + 2014-12-15 19:27:06 + closed + closed + img_2633-2 + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/img_26331.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _edit_last + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2632 + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/img_2632-2/ + Mon, 15 Dec 2014 19:06:29 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/img_26321.jpg + + + + 534 + 2014-12-15 21:06:29 + 2014-12-15 19:06:29 + closed + closed + img_2632-2 + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/img_26321.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _edit_last + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_2630 + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/img_2630/ + Mon, 15 Dec 2014 19:05:42 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2014/12/img_2630.jpg + + + + 533 + 2014-12-15 21:05:42 + 2014-12-15 19:05:42 + open + open + img_2630 + inherit + 513 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2014/12/img_2630.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + 201609091558_0002 + https://a385e5.wordpress.com/2016/09/09/integrated-thermometer-and-timer/201609091558_0002/ + Fri, 09 Sep 2016 15:02:13 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/09/201609091558_0002.pdf + + + + 726 + 2016-09-09 17:02:13 + 2016-09-09 15:02:13 + open + closed + 201609091558_0002 + inherit + 718 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/09/201609091558_0002.pdf + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + 201609091558_0001 + https://a385e5.wordpress.com/2016/09/09/integrated-thermometer-and-timer/201609091558_0001/ + Fri, 09 Sep 2016 15:02:00 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/09/201609091558_0001.pdf + + + + 725 + 2016-09-09 17:02:00 + 2016-09-09 15:02:00 + open + closed + 201609091558_0001 + inherit + 718 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/09/201609091558_0001.pdf + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_3805 + https://a385e5.wordpress.com/2015/09/14/first-esp8266-project-wifi-power-switch/img_3805/ + Mon, 14 Sep 2015 07:23:01 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/09/img_3805.jpg + + + + 672 + 2015-09-14 09:23:01 + 2015-09-14 07:23:01 + open + closed + img_3805 + inherit + 671 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/09/img_3805.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_3234 + https://a385e5.wordpress.com/2015/06/05/relaybox/img_3234/ + Fri, 05 Jun 2015 10:45:08 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/06/img_3234.jpg + + + + 621 + 2015-06-05 12:45:08 + 2015-06-05 10:45:08 + open + open + img_3234 + inherit + 620 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/06/img_3234.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_1211 + https://a385e5.wordpress.com/2016/03/03/why-always-spi-cs-on-pin-10/img_1211/ + Thu, 03 Mar 2016 21:00:02 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/03/img_1211-e1457038834523.jpg + + + + 712 + 2016-03-03 23:00:02 + 2016-03-03 21:00:02 + open + closed + img_1211 + inherit + 710 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/03/img_1211-e1457038834523.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_1212 + https://a385e5.wordpress.com/2016/03/03/why-always-spi-cs-on-pin-10/img_1212/ + Thu, 03 Mar 2016 21:04:32 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/03/img_1212-e1457039094609.jpg + + + + 713 + 2016-03-03 23:04:32 + 2016-03-03 21:04:32 + open + closed + img_1212 + inherit + 710 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/03/img_1212-e1457039094609.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_3235 + https://a385e5.wordpress.com/2015/06/05/relaybox/img_3235/ + Fri, 05 Jun 2015 10:45:19 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/06/img_3235.jpg + + + + 622 + 2015-06-05 12:45:19 + 2015-06-05 10:45:19 + open + open + img_3235 + inherit + 620 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/06/img_3235.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_3167 + https://a385e5.wordpress.com/2015/06/05/revisiting-the-meterbus-master/img_3167/ + Fri, 05 Jun 2015 10:14:14 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/06/img_3167.jpg + + + + 605 + 2015-06-05 12:14:14 + 2015-06-05 10:14:14 + open + open + img_3167 + inherit + 603 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/06/img_3167.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_3814 + https://a385e5.wordpress.com/2015/09/14/first-esp8266-project-wifi-power-switch/img_3814/ + Wed, 16 Sep 2015 14:24:18 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/09/img_3814.jpg + + + + 688 + 2015-09-16 16:24:18 + 2015-09-16 14:24:18 + open + closed + img_3814 + inherit + 671 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/09/img_3814.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + IMG_3168 + https://a385e5.wordpress.com/2015/06/05/revisiting-the-meterbus-master/img_3168/ + Fri, 05 Jun 2015 10:14:07 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2015/06/img_3168.jpg + + + + 604 + 2015-06-05 12:14:07 + 2015-06-05 10:14:07 + open + open + img_3168 + inherit + 603 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/06/img_3168.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + img_0813 + https://a385e5.wordpress.com/2016/09/09/integrated-thermometer-and-timer/img_0813/ + Fri, 09 Sep 2016 14:53:37 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/09/img_0813-e1473432862286.jpg + + + + 720 + 2016-09-09 16:53:37 + 2016-09-09 14:53:37 + open + closed + img_0813 + inherit + 718 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/09/img_0813-e1473432862286.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + img_0821 + https://a385e5.wordpress.com/2016/09/12/integrated-tea-timer-and-thermometer-second-edition/img_0821/ + Mon, 12 Sep 2016 10:48:07 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/09/img_0821-e1473677332189.jpg + + + + 731 + 2016-09-12 12:48:07 + 2016-09-12 10:48:07 + open + closed + img_0821 + inherit + 729 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/09/img_0821-e1473677332189.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + img_0814 + https://a385e5.wordpress.com/2016/09/09/integrated-thermometer-and-timer/img_0814/ + Fri, 09 Sep 2016 14:53:44 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/09/img_0814.jpg + + + + 721 + 2016-09-09 16:53:44 + 2016-09-09 14:53:44 + open + closed + img_0814 + inherit + 718 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/09/img_0814.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + img_0818 + https://a385e5.wordpress.com/2016/09/12/integrated-tea-timer-and-thermometer-second-edition/img_0818/ + Mon, 12 Sep 2016 10:48:00 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/09/img_0818-e1473677307841.jpg + + + + 730 + 2016-09-12 12:48:00 + 2016-09-12 10:48:00 + open + closed + img_0818 + inherit + 729 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/09/img_0818-e1473677307841.jpg + + pre_import_post_parent + + + + pre_import_post_id + + + + _attachment_original_parent_id + + + + _original_import_url + + + + + cropped-cropped-img_26294.jpg + https://a385e5.wordpress.com/cropped-cropped-img_26294-jpg/ + Wed, 12 Oct 2016 12:18:22 +0000 + whottgenroth + https://a385e5.files.wordpress.com/2015/06/cropped-cropped-img_26294.jpg + + + + 736 + 2016-10-12 12:18:22 + 2016-10-12 12:18:22 + open + closed + cropped-cropped-img_26294-jpg + inherit + 0 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/06/cropped-cropped-img_26294.jpg + + _wp_attachment_custom_header_last_used_pub/sapor + + + + _wp_attachment_context + + + + _wp_attachment_is_custom_header + + + + + cropped-img_2723.jpg + https://a385e5.wordpress.com/cropped-img_2723-jpg/ + Wed, 12 Oct 2016 12:19:02 +0000 + whottgenroth + https://a385e5.files.wordpress.com/2015/01/cropped-img_2723.jpg + + + + 737 + 2016-10-12 12:19:02 + 2016-10-12 12:19:02 + open + closed + cropped-img_2723-jpg + inherit + 0 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2015/01/cropped-img_2723.jpg + + _wp_attachment_context + + + + _wp_attachment_custom_header_last_used_pub/sapor + + + + _wp_attachment_is_custom_header + + + + + img_0053 + https://a385e5.wordpress.com/2016/10/14/three-phase-inverter/img_0053/ + Fri, 14 Oct 2016 09:34:20 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/10/img_0053.jpg + + + + 740 + 2016-10-14 09:34:20 + 2016-10-14 09:34:20 + open + closed + img_0053 + inherit + 739 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/10/img_0053.jpg + + + img_0054 + https://a385e5.wordpress.com/2016/10/14/three-phase-inverter/img_0054/ + Fri, 14 Oct 2016 09:34:25 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/10/img_0054.jpg + + + + 741 + 2016-10-14 09:34:25 + 2016-10-14 09:34:25 + open + closed + img_0054 + inherit + 739 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/10/img_0054-e1476437702547.jpg + + _wp_attachment_backup_sizes + + + + + img_0055 + https://a385e5.wordpress.com/2016/10/14/three-phase-inverter/img_0055/ + Fri, 14 Oct 2016 09:34:28 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/10/img_0055.jpg + + + + 742 + 2016-10-14 09:34:28 + 2016-10-14 09:34:28 + open + closed + img_0055 + inherit + 739 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/10/img_0055-e1476437685461.jpg + + _wp_attachment_backup_sizes + + + + + img_0056 + https://a385e5.wordpress.com/2016/10/14/three-phase-inverter/img_0056/ + Fri, 14 Oct 2016 09:34:31 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/10/img_0056.jpg + + + + 743 + 2016-10-14 09:34:31 + 2016-10-14 09:34:31 + open + closed + img_0056 + inherit + 739 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/10/img_0056.jpg + + + 2016-10-13_works + https://a385e5.wordpress.com/2016/10/14/three-phase-inverter/2016-10-13_works/ + Fri, 14 Oct 2016 09:53:36 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/10/2016-10-13_works.png + + + + 753 + 2016-10-14 09:53:36 + 2016-10-14 09:53:36 + open + closed + 2016-10-13_works + inherit + 739 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/10/2016-10-13_works.png + + + 2016-10-13_works_not + https://a385e5.wordpress.com/2016/10/14/three-phase-inverter/2016-10-13_works_not/ + Fri, 14 Oct 2016 09:53:37 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/10/2016-10-13_works_not.png + + + + 754 + 2016-10-14 09:53:37 + 2016-10-14 09:53:37 + open + closed + 2016-10-13_works_not + inherit + 739 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/10/2016-10-13_works_not.png + + + 2016-10-13_1 + https://a385e5.wordpress.com/2016/10/14/three-phase-inverter/2016-10-13_1/ + Fri, 14 Oct 2016 09:58:00 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/10/2016-10-13_1.png + + + + 757 + 2016-10-14 09:58:00 + 2016-10-14 09:58:00 + open + closed + 2016-10-13_1 + inherit + 739 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/10/2016-10-13_1.png + + + inverter0_2016-09-23-4 + https://a385e5.wordpress.com/2016/10/14/three-phase-inverter/inverter0_2016-09-23-4/ + Fri, 14 Oct 2016 10:00:13 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/10/inverter0_2016-09-23-4.png + + + + 759 + 2016-10-14 10:00:13 + 2016-10-14 10:00:13 + open + closed + inverter0_2016-09-23-4 + inherit + 739 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/10/inverter0_2016-09-23-4.png + + + img_0111 + https://a385e5.wordpress.com/2016/11/02/something-really-useful-433mhz-power-outlet-control/img_0111/ + Wed, 02 Nov 2016 11:42:53 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/11/img_0111.jpg + + + + 799 + 2016-11-02 11:42:53 + 2016-11-02 11:42:53 + open + closed + img_0111 + inherit + 763 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/11/img_0111-e1478087101747.jpg + + _wp_attachment_backup_sizes + + + + + img_0100 + https://a385e5.wordpress.com/2016/11/02/something-really-useful-433mhz-power-outlet-control/img_0100/ + Wed, 02 Nov 2016 11:49:18 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/11/img_0100.jpg + + + + 803 + 2016-11-02 11:49:18 + 2016-11-02 11:49:18 + open + closed + img_0100 + inherit + 763 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/11/img_0100-e1478087375824.jpg + + _wp_attachment_backup_sizes + + + + + sender_receiver + https://a385e5.wordpress.com/2016/11/02/something-really-useful-433mhz-power-outlet-control/sender_receiver/ + Wed, 02 Nov 2016 11:16:33 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/11/sender_receiver.png + + + + 775 + 2016-11-02 11:16:33 + 2016-11-02 11:16:33 + open + closed + sender_receiver + inherit + 763 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/11/sender_receiver.png + + + img_0105 + https://a385e5.wordpress.com/2016/11/02/something-really-useful-433mhz-power-outlet-control/img_0105/ + Wed, 02 Nov 2016 11:20:57 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/11/img_0105.jpg + + + + 784 + 2016-11-02 11:20:57 + 2016-11-02 11:20:57 + open + closed + img_0105 + inherit + 763 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/11/img_0105.jpg + + + img_0101 + https://a385e5.wordpress.com/2016/11/02/something-really-useful-433mhz-power-outlet-control/img_0101/ + Wed, 02 Nov 2016 11:36:54 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/11/img_01012.jpg + + + + 791 + 2016-11-02 11:36:54 + 2016-11-02 11:36:54 + open + closed + img_0101 + inherit + 763 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/11/img_01012-e1478087121580.jpg + + _wp_attachment_backup_sizes + + + + + img_0140 + https://a385e5.wordpress.com/2016/12/19/three-phase-inverter-second-service/img_0140/ + Mon, 19 Dec 2016 09:52:10 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/12/img_0140.jpg + + + + 815 + 2016-12-19 09:52:10 + 2016-12-19 09:52:10 + open + closed + img_0140 + inherit + 808 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/12/img_0140.jpg + + + img_0144 + https://a385e5.wordpress.com/2016/12/19/three-phase-inverter-second-service/img_0144/ + Mon, 19 Dec 2016 09:55:18 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/12/img_0144.jpg + + + + 820 + 2016-12-19 09:55:18 + 2016-12-19 09:55:18 + open + closed + img_0144 + inherit + 808 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/12/img_0144.jpg + + + img_0146 + https://a385e5.wordpress.com/2016/12/19/three-phase-inverter-second-service/img_0146/ + Mon, 19 Dec 2016 09:57:50 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/12/img_0146.jpg + + + + 825 + 2016-12-19 09:57:50 + 2016-12-19 09:57:50 + open + closed + img_0146 + inherit + 808 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/12/img_0146.jpg + + + img_0143 + https://a385e5.wordpress.com/2016/12/19/three-phase-inverter-second-service/img_0143/ + Mon, 19 Dec 2016 09:59:12 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2016/12/img_0143.jpg + + + + 830 + 2016-12-19 09:59:12 + 2016-12-19 09:59:12 + open + closed + img_0143 + inherit + 808 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2016/12/img_0143-e1482141676335.jpg + + _wp_attachment_backup_sizes + + + + + rpi_ss1 + https://a385e5.wordpress.com/?attachment_id=838 + Mon, 03 Jul 2017 17:49:01 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2017/07/rpi_ss1.png + + + + 838 + 2017-07-03 17:49:01 + 2017-07-03 17:49:01 + open + closed + rpi_ss1 + inherit + 837 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2017/07/rpi_ss1.png + + + IMG_0594 + https://a385e5.wordpress.com/?attachment_id=840 + Mon, 03 Jul 2017 17:51:16 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2017/07/img_0594.jpg + + + + 840 + 2017-07-03 17:51:16 + 2017-07-03 17:51:16 + open + closed + img_0594 + inherit + 837 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2017/07/img_0594.jpg + + + Foto-am-30.06.13-um-20.02 + https://a385e5.wordpress.com/2013/07/01/just-another-theremin/foto-am-30-06-13-um-20-02/ + Tue, 06 Feb 2018 15:55:29 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2013/07/foto-am-30-06-13-um-20-02.jpg + + + + 856 + 2018-02-06 15:55:29 + 2018-02-06 15:55:29 + open + closed + foto-am-30-06-13-um-20-02 + inherit + 56 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2013/07/foto-am-30-06-13-um-20-02.jpg + + + Foto-am-30.06.13-um-20.02 + https://a385e5.wordpress.com/2013/07/01/just-another-theremin/foto-am-30-06-13-um-20-02-2/ + Tue, 06 Feb 2018 15:57:26 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2013/07/foto-am-30-06-13-um-20-021.jpg + + + + 857 + 2018-02-06 15:57:26 + 2018-02-06 15:57:26 + open + closed + foto-am-30-06-13-um-20-02-2 + inherit + 56 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2013/07/foto-am-30-06-13-um-20-021.jpg + + + scan_005006-1024x654 + https://a385e5.wordpress.com/2013/07/01/just-another-theremin/scan_005006-1024x654/ + Tue, 06 Feb 2018 15:58:13 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2013/07/scan_005006-1024x654.jpg + + + + 858 + 2018-02-06 15:58:13 + 2018-02-06 15:58:13 + open + closed + scan_005006-1024x654 + inherit + 56 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2013/07/scan_005006-1024x654.jpg + + + scan_005006_6 + https://a385e5.wordpress.com/2013/07/01/just-another-theremin/scan_005006_6/ + Tue, 06 Feb 2018 15:59:17 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2013/07/scan_005006_6.jpg + + + + 860 + 2018-02-06 15:59:17 + 2018-02-06 15:59:17 + open + closed + scan_005006_6 + inherit + 56 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2013/07/scan_005006_6.jpg + + + scan_005006_5-1024x717 + https://a385e5.wordpress.com/2013/07/01/just-another-theremin/scan_005006_5-1024x717/ + Tue, 06 Feb 2018 15:59:27 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2013/07/scan_005006_5-1024x717.jpg + + + + 861 + 2018-02-06 15:59:27 + 2018-02-06 15:59:27 + open + closed + scan_005006_5-1024x717 + inherit + 56 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2013/07/scan_005006_5-1024x717.jpg + + + scan_005006_4 + https://a385e5.wordpress.com/2013/07/01/just-another-theremin/scan_005006_4/ + Tue, 06 Feb 2018 16:00:08 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2013/07/scan_005006_4.jpg + + + + 862 + 2018-02-06 16:00:08 + 2018-02-06 16:00:08 + open + closed + scan_005006_4 + inherit + 56 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2013/07/scan_005006_4.jpg + + + scan_005006_3 + https://a385e5.wordpress.com/2013/07/01/just-another-theremin/scan_005006_3/ + Tue, 06 Feb 2018 16:00:31 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2013/07/scan_005006_3.jpg + + + + 864 + 2018-02-06 16:00:31 + 2018-02-06 16:00:31 + open + closed + scan_005006_3 + inherit + 56 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2013/07/scan_005006_3.jpg + + + scan_005006_2-1024x553 + https://a385e5.wordpress.com/2013/07/01/just-another-theremin/scan_005006_2-1024x553/ + Tue, 06 Feb 2018 16:00:44 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2013/07/scan_005006_2-1024x553.jpg + + + + 865 + 2018-02-06 16:00:44 + 2018-02-06 16:00:44 + open + closed + scan_005006_2-1024x553 + inherit + 56 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2013/07/scan_005006_2-1024x553.jpg + + + IMG_0304 + https://a385e5.wordpress.com/2018/02/22/home-automation-hub/img_0304/ + Thu, 22 Feb 2018 17:40:19 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2018/02/img_0304.jpg + + + + 872 + 2018-02-22 17:40:19 + 2018-02-22 17:40:19 + open + closed + img_0304 + inherit + 871 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2018/02/img_0304.jpg + + + IMG_0195 + https://a385e5.wordpress.com/2018/02/22/home-automation-hub/img_0195/ + Thu, 22 Feb 2018 17:43:53 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2018/02/img_0195.jpg + + + + 873 + 2018-02-22 17:43:53 + 2018-02-22 17:43:53 + open + closed + img_0195 + inherit + 871 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2018/02/img_0195.jpg + + + IMG_0307 + https://a385e5.wordpress.com/2018/02/22/home-automation-hub/img_0307/ + Thu, 22 Feb 2018 17:51:30 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2018/02/img_0307.jpg + + + + 876 + 2018-02-22 17:51:30 + 2018-02-22 17:51:30 + open + closed + img_0307 + inherit + 871 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2018/02/img_0307.jpg + + + IMG_0308 + https://a385e5.wordpress.com/2018/02/22/home-automation-hub/img_0308/ + Thu, 22 Feb 2018 18:04:32 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2018/02/img_0308.jpg + + + + 881 + 2018-02-22 18:04:32 + 2018-02-22 18:04:32 + open + closed + img_0308 + inherit + 871 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2018/02/img_0308.jpg + + + git-signing-3 + https://a385e5.wordpress.com/?attachment_id=899 + Mon, 26 Mar 2018 16:29:44 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2018/03/git-signing-3.png + + + + 899 + 2018-03-26 16:29:44 + 2018-03-26 16:29:44 + open + closed + git-signing-3 + inherit + 896 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2018/03/git-signing-3.png + + + 20180430110848869_0001 + https://a385e5.wordpress.com/2018/04/30/yet-another-debouncing-method/20180430110848869_0001/ + Mon, 30 Apr 2018 09:17:35 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2018/04/20180430110848869_0001.jpg + + + + 901 + 2018-04-30 09:17:35 + 2018-04-30 09:17:35 + open + closed + 20180430110848869_0001 + inherit + 900 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2018/04/20180430110848869_0001.jpg + + + + <link>https://a385e5.wordpress.com/2018/03/21/889/</link> + <pubDate>Wed, 21 Mar 2018 12:15:48 +0000</pubDate> + <dc:creator>whottgenroth</dc:creator> + <guid isPermaLink="false">https://a385e5.wordpress.com/?p=889</guid> + <description/> + <content:encoded><![CDATA[ ]]></content:encoded> + <excerpt:encoded><![CDATA[]]></excerpt:encoded> + <wp:post_id>889</wp:post_id> + <wp:post_date>2018-03-21 12:15:48</wp:post_date> + <wp:post_date_gmt>2018-03-21 12:15:48</wp:post_date_gmt> + <wp:comment_status>closed</wp:comment_status> + <wp:ping_status>closed</wp:ping_status> + <wp:post_name>889</wp:post_name> + <wp:status>publish</wp:status> + <wp:post_parent>0</wp:post_parent> + <wp:menu_order>2</wp:menu_order> + <wp:post_type>nav_menu_item</wp:post_type> + <wp:post_password/> + <wp:is_sticky>0</wp:is_sticky> + <category domain="nav_menu" nicename="menu-1"><![CDATA[Menu 1]]></category> + <wp:postmeta> + <wp:meta_key>_menu_item_type</wp:meta_key> + <wp:meta_value><![CDATA[post_type]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_menu_item_parent</wp:meta_key> + <wp:meta_value><![CDATA[0]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_object_id</wp:meta_key> + <wp:meta_value><![CDATA[887]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_object</wp:meta_key> + <wp:meta_value><![CDATA[page]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_target</wp:meta_key> + <wp:meta_value><![CDATA[]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_classes</wp:meta_key> + <wp:meta_value><![CDATA[a:1:{i:0;s:0:"";}]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_xfn</wp:meta_key> + <wp:meta_value><![CDATA[]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_menu_item_url</wp:meta_key> + <wp:meta_value><![CDATA[]]></wp:meta_value> + </wp:postmeta> + <wp:postmeta> + <wp:meta_key>_publicize_pending</wp:meta_key> + <wp:meta_value><![CDATA[1]]></wp:meta_value> + </wp:postmeta> +</item> +<item> + <title>git-signing-1 + https://a385e5.wordpress.com/?attachment_id=897 + Mon, 26 Mar 2018 16:25:09 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2018/03/git-signing-1.png + + + + 897 + 2018-03-26 16:25:09 + 2018-03-26 16:25:09 + open + closed + git-signing-1 + inherit + 896 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2018/03/git-signing-1.png + + + git-signing-2 + https://a385e5.wordpress.com/?attachment_id=898 + Mon, 26 Mar 2018 16:25:28 +0000 + whottgenroth + http://a385e5.files.wordpress.com/2018/03/git-signing-2.png + + + + 898 + 2018-03-26 16:25:28 + 2018-03-26 16:25:28 + open + closed + git-signing-2 + inherit + 896 + 0 + attachment + + 0 + https://a385e5.files.wordpress.com/2018/03/git-signing-2.png + + + About + https://a385e5.wordpress.com/about/ + Mon, 08 Jun 2015 16:13:28 +0000 + whottgenroth + http://a385e5.wordpress.com/?page_id=1 + + add another page.]]> + + 1 + 2015-06-08 16:13:28 + 2015-06-08 16:13:28 + open + open + about + publish + 0 + 0 + page + + 0 + + _wp_page_template + + + + + A Web-controlled Picture Frame + https://a385e5.wordpress.com/2013/06/26/a-web-controlled-picture-frame/ + Wed, 26 Jun 2013 21:29:57 +0000 + whottgenroth + http://a385e-5.de/?p=26 + + Ingredients: +
      +
    • an Arduino Ethernet board
    • +
    • a small stepper motor
    • +
    • a double full-H-bridge to drive the stepper
    • +
    • a reflexion sensor with LED and photo transistor
    • +
    • some plywood
    • +
    • four photos of your loved ones
    • +
    • a black self-adhesive plastic film
    • +
    • the webduino library from the Arduino homepage
    • +
    • the Metro library from the Arduino homepage
    • +
    +Foto 2 + +  + +The Arduino drives via the double full-H-bridge the stepper to turn 90° three times, 15 minutes between each turn. The fourth time, to complete the 360° full turnaround, its drives the stepper until ... + +Foto 4 + +  + +the white mark arrives of the reflexion light sensor. + +This mark and the photos on the other side of the round piece of plywood have to be adjusted carefully, that way, that one photo appear in a window in the frontside of the wooden box. + +Foto 3 + +  + +(Consider the photos of your loved ones where you see colored rectangles above.) + +That's it. Code is here http://files.a385e-5.de/files/Bilderrahmen-0.9.tar.gz + +  + + ]]>
    + + 26 + 2013-06-26 21:29:57 + 2013-06-26 21:29:57 + closed + closed + a-web-controlled-picture-frame + publish + 0 + 0 + post + + 0 + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + +
    + + Children Protection for Postfix-based EMail-Server + https://a385e5.wordpress.com/2013/06/27/children-protection-for-postfix-based-email-server/ + Thu, 27 Jun 2013 21:13:31 +0000 + whottgenroth + http://a385e-5.de/?p=38 + + http://files.a385e-5.de/files/ChildProt-0.9.tar.gz + +Configure it by adding this line into the master.cf of the Postfix installation: +
    childprot unix  -       n       n       -       25      spawn user=mail argv=/opt/sbin/ChildProt
    +and this to the main.cf: +
    smtpd_recipient_restrictions =
    +  [...]
    +  check_policy_service unix:private/childprot
    +  [...]
    +The restricted recipients and the whitelists are stored in an SQLite3 database: +
    CREATE TABLE child_address_t (
    +  child INTEGER REFERENCES child_t(id),
    +  address TEXT
    +);
    +
    +CREATE TABLE child_t (
    +  id INTEGER PRIMARY KEY,
    +  name TEXT,
    +  delegate TEXT
    +);
    +
    +CREATE TABLE whitelist_t (
    +  child INTEGER REFERENCES child_t(id),
    +  address TEXT
    +);
    +
    +CREATE VIEW child_v AS
    +  SELECT c.id as id,
    +         c.delegate as delegate,
    +         ca.address as address
    +  FROM child_t c,
    +       child_address_t ca
    +  WHERE c.id = ca.child;
    +Restricted persons together with their delegates are added to the table child_t, multiple addresses can be assigned to those persons in child_address_t. Whitelists per person are maintained in whitelist_t. + +The tool is querying the view child_v. + +  + + ]]>
    + + 38 + 2013-06-27 21:13:31 + 2013-06-27 21:13:31 + closed + closed + children-protection-for-postfix-based-email-server + publish + 0 + 0 + post + + 0 + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + +
    + + A Network-Attached Thermometer + https://a385e5.wordpress.com/2013/06/27/a-network-attached-thermometer/ + Thu, 27 Jun 2013 13:47:20 +0000 + whottgenroth + http://a385e-5.de/?p=44 + + Foto 4-1 + + +201307031008 + +Using the voltage-reference LT1004 1.2 and the voltage divider, a voltage of 1.0V is provided to the op-amp, which forms together with the bottom 1k resistor and the BS108 a current source, driving 1.0mA through the PT1000. Since 1mA is a bit high for a PT1000, this current can be shut down using the other BS108 by the mcirocontroller via P5. + +For a measurement, the current of 1.0mA is switched on, about 100us later the voltage over the PT100 is measured through the difference amplifier and the ADC MAX187, which is read by the microcontroller via P2, P3 and P4. Immediately after measuring the voltage the current is switched off again to avoid heating up the PT1000 with the measurement current. + +Embedded software running on the Arduino Uno calculates the temperature from the voltage of the PT1000. This temperature value is low pass filtered using exponential smoothing. All three values (digital output of the ADC, raw temperature and smoothed temperature are provided via the Arduino Ethernet Shield and a proprietary protocol on the LAN, where the values are queried with a period of one minute by the server-side support software and stored in a database. + + + + +Embedded code + +Support code + + + + +Temperature of the day: + +Foto 4-1 + + +Temperature of the last seven days: +Foto 4-1 + +Temperature of the month: +Foto 4-1]]> + + 44 + 2013-06-27 13:47:20 + 2013-06-27 13:47:20 + closed + closed + a-network-attached-thermometer + publish + 0 + 0 + post + + 0 + + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + + + + Just another Theremin + https://a385e5.wordpress.com/2013/07/01/just-another-theremin/ + Mon, 01 Jul 2013 20:36:01 +0000 + whottgenroth + http://a385e-5.de/?p=56 + + Theremin is a rather old electronic music instrument, invented in 1928. It is played by approaching hands to two antennas, without touching them. One antenna is used to manipulate the frequeny of the tone, the other one to manipulate the volume. + +Foto-am-30.06.13-um-20.02 + +This is just another Theremin. Only basic structure of the circuit was taken from many other published Theremin circuits. + +scan_005006-1024x654 + +Completely new (or at least not found during my Theremin googling) is the digital zero-calibration. + +The both left-hand-side oscillators together with the mixer+filter block provide the signal to control the volume, the right-hand-side oscillators and mixer+filter block provide the signal to control the frequency. + +Each of these both couples consists of two oscillators and a mixer+filter block. Both oscillators have to swing on exactly the same frequency, in this case of about 1.3MHz. While the exact frequency does not matter, it is significant that both oscillators have the same frequency. The signals of both oscillators will be mixed, which means, multiplied. + +[math]sin(omega_0 t) sin(omega t)[/math] + +Here [math]omega[/math] is the frequncy of one of the oscillators while [math]omega_0[/math] is the frequency of the other one. + +This term can be modified using the addition rule for trigonometric functions into + +[math]frac{cos((omega_0-omega)t)-cos((omega_0+omega)t)}{2}[/math] + +Due to this transformation, two signals, one with the sum and one with the difference of both input signal frequencies, are accumulated. + +When both frequencies are exactly the same, one part of the sum appears as a DC offset, while the other part is the doubled frequency. + +If one oscillator is de-tuned by only a few Hz's, one part are this few Hz's (a very low, hearable frequency) and the other part is still (roughly) the doubled frequency (a high frequency). The high frequency part can now be suppressed using a lowpass-filter. + +Multiplication of two signals can be done using an analog four quadrant multiplier, like the AD633. So, this is the schematic of the mixer+filter block: + +scan_005006_5-1024x717 + + +The output signal of this block is the difference of the detuning of the one oscillator. + +Detuning of the oscillator will be achieved by approaching the hand to the antenna of the oscillator. + +scan_005006_3 + + +The antenna acts as a kind of a capacitive sensor and by approaching the hand a very small amount of capacity is added into the LC resonator. + +The other oscillator is a fix-frequency oscillator which can be tuned to swing on the same frequency as the first oscillator in a not detuned state. + +scan_005006_4 + + + +This tuning is achieved by biasing the two varactor diodes. + +Here is automated tuning circuit steps in: + +scan_005006_6 + + +The low-frequency output signal of the mixer+filter block is provided through a 2-to-1 multiplexer (the four NAND-gates) into a microcontroller. The microcontroller measures the frequency and as long as it is above a frequency [math]epsilon[/math] of say 10Hz, the bias voltage [math]U_{tune}[/math] is increased. + +These both oscillators with mixer+filter and one channel of the zero-calibration appear twice in the whole circuit, one for frequency manipulation and one for volume manipulation. + +The low-frequency, hearable, signal and the volume-control signal are brought together in the volume-control circuit + +scan_005006_2-1024x553 + + +Here, the low-frequency signal [math]U_{Lf1}[/math] is passed through a high-pass filter. The high-pass filter is calculated that way that the whole detunable frequency range comes onto the ramp of the filter. So, the not detuned output signal of the mixer+filter is a DC signal, which is suppressed completely by the high-pass filter (beginning of the ramp) and the maximum detuned output signal of about 2kHz matched roughly to the end of the ramp. This filtered signal is rectified and only the negative half-wave of the signal passes the diode. This half-wave signal is sieved by the larger capacitor to get a DC signal between 0 and the maximum amplitude which passed the fiter. This negative DC signal is fed into the FET, which is configured as a voltage controlled resistor. This voltage controlled resistor and the fix resistor (5k6) are building a voltage controlled voltage divider. The hearable frequency signal [math]U_{Lf2}[/math] is fed into this voltage divider  and passed to an amplifier. + +The output signal of this block in turn is the volume-controlled and frequency-controlled signal which is the output signal of this Theremin. It is passed into a power-amplifier and into a speaker - done. + +Calibrating the Theremin +[youtube https://www.youtube.com/watch?v=5US8LY_FbQ4&w=420&h=315] + +"Playing" the Theremin +[youtube https://www.youtube.com/watch?v=lDld71HI66o&w=420&h=315]]]> + + 56 + 2013-07-01 20:36:01 + 2013-07-01 20:36:01 + closed + closed + just-another-theremin + publish + 0 + 0 + post + + 0 + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + + + _publicize_job_id + + + + + M-Bus Master, Part 1 (Basics) + https://a385e5.wordpress.com/2013/07/24/m-bus-master/ + Wed, 24 Jul 2013 20:46:05 +0000 + whottgenroth + http://a385e-5.de/?p=115 + + here and here. + +This is an attempt to build a simple master for this bus, which is a single-master multiple-slave bus, to be controlled using an Arduino system. + +laser-drucker_005070 + +Master to slave communication is performed by lowering the voltage at the bus by 12V, so here, from 30V to 18V. In the above schematic, T2 and IC1 together with the divider of R1 and R2 are forming a voltage source. When T1 is blocking, the bottom part of the divider is inactive and full 30V is the reference for the voltage source and the output voltage at the bus is 30V. When T1 is conducting (high signal at TX), the bottom part of the divider becomes active and the reference voltage is lowered to 18V, consequently the output voltage at the bus is 18V too. + +(Maybe the signal driving T1 needs to be inverted first to get the correct logical polarity, not yet verified.) + +This is the waveform with a feed of 10kHz at TX: + +TX + +Ch. 2 (blue) is the input signal from the function generator, Ch. 1 (yellow) is the output signal at the bus terminals. It still needs to be verified whether the setup time (delay between falling edge of input and raising edge of output) is short enough. + + +R5 is a current sense for the receive path, R4 is a ground-load for an open bus and C1 serves to filter the output voltage. Only a rather small capacitor is used here to only filter the high-frequency noise (around 1MHz) from the source but not the signal of about 10kHz fed through T1 from TX. + + +Slave to master communication is performed by changing the current sinked by the slave. A logical '1' is signalled by a current of maximum 1,5mA, a logical '0' is signalled by a current of 11-20mA. This is sensed at R5 and needs to be conditioned before feeding as RX into the microcontroller. + +The voltage over R5 is in the low load situation about 100mV, in the high load situation about 1V. These are good voltages to block or conduct a PNP transistor, in the following schematic T3. + +schematic1 + +The voltage of the signal at the point RX is limited using a Z-diode to fit into the range acceptable for a microcontroller. It is: + +NewFile2 + +Ch. 1 (yellow) is the signal from the generator to switch the load situation, Ch. 2 (blue) the signal at RX. + +The MOSFET T1 has been replaced by a NPN transistor BC547, the waveforms are still very good: + +NewFile3 + +Ch. 1 (yellow) is the voltage on the M-bus terminal, Ch. 2 (blue) is the generator signal at TX. + + +]]> + + 115 + 2013-07-24 20:46:05 + 2013-07-24 20:46:05 + closed + closed + m-bus-master + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + + + + M-Bus Master, Part 2 (Electricity) + https://a385e5.wordpress.com/2013/09/09/m-bus-master-part-2/ + Mon, 09 Sep 2013 23:44:27 +0000 + whottgenroth + http://a385e-5.de/?p=149 + + Foto 3 + +Finally, this MeterBus transceiver is connected to an Arduino Ethernet board and talks to an M-Bus equipped electric powermeter + +kettle + +Foto 2 + +The power meter was configured to M-Bux address 0x21, and so the initialize command, sent through the Arduino and the transceiver has been answered correctly: + + +so 10 40 21 61 16 +success +SO RESP: E5 + + +so is the command for the firmware to send the following octets on the bus, success is the acknowledgement, that this has been done and SO RESP: is the prefix for the octets received from the bus. + +According the the manufacturers documentation the M-Bus command REQ_UD2 (see here in the M-Bus documentation should be used to request all the measurement data from the powermeter, and it works: + +Here without any consumer load: + +so 10 5b 21 7c 16 +success +SO RESP: 68 38 38 68 08 21 72 99 51 00 13 2E 19 21 02 01 00 00 00 8C +10 04 06 00 00 00 8C 11 04 00 00 00 00 02 FD C9 FF 01 E3 00 02 FD DB +FF 01 00 00 02 AC FF 01 00 00 82 40 AC FF 01 00 00 EB 16 + + +Here with an electric kettle as consumer load: + +so 10 5b 21 7c 16 +success +SO RESP: 68 38 38 68 08 21 72 99 51 00 13 2E 19 21 02 02 00 00 00 8C +10 04 06 00 00 00 8C 11 04 00 00 00 00 02 FD C9 FF 01 DE 00 02 FD DB +FF 01 56 00 02 AC FF 01 CD 00 82 40 AC FF 01 00 00 0A 16 + + +In the above answer of the powermeter the important measurement values are highlighted: + +[table] +Data,measurement category,multiplicator and unit, +06 00 00 00,total consumption,0.01kWh,0.06kWh +DE 00,voltage,1V,222V +56 00,current,0.1A,8.6A +CD 00,power,0.01kW,2.05kW +[/table] + + +Here is the firmware for the Arduino. + + +This is a closer look into the response data structure: + +(Manufacturer IDs can be found here.) + +[table] +Octet(s), Field, Meaning +68 38 38 68, Preamble with lentgh, +08, C Field, +21, A Field, +72, CI Field, variable data response + +99 51 00 13, Ident. No., +2E 19, Manufacturer, FIN = Finder GmbH +21, Version, +02, Medium, Electricity +02, Access No, +00, Status, +00 00, Signature, + +8C, DIF, ext; instantaneuos value; 8 digit BCD +10, DIFE, tariff 1; storage 0 +04, VIF, Energy; 10^(4-3)Wh +06 00 00 00, Value, 0.06kWh +8C, DIF, ext; instantaneuos value; 8 digit BCD +11, DIFE, tariff 1; storage 1 +04, VIF, Energy; 10^(4-3)Wh +00 00 00 00, Value, 0 +02, DIF, 16bit integer +FD, VIF, ext; true VIF is next; see table for secondary VIF +C9, VIFE, ext; Voltage; 10^(9-9)V +FF, VIFE, manufacturer specific next VIFE +01, VIFE, +DE 00, Value, 222V +02, DIF, 16bit integer +FD, VIF, ext; true VIF is next; see table for secondary VIF +DB, VIFE, ext; Current; 10^(11-12)A +FF, VIFE, manufacturer specific next VIFE +01, VIFE, +56 00, Value, 8.6A +02, DIF, 16bit integer +AC, VIF, ext; Power; 10^(4-3)W +FF, VIFE, manufacturer specific next VIFE +01, VIFE, +CD 00, Value, 2.05kW +82, DIF, ext; 16bit integer +40, DIFE, tariff 0; storage 4 +AC, VIF, ext; Power; 10^(4-3)W +FF, VIFE, manufacturer specific next VIFE +01, VIFE, +00 00, Value, 0 + +0A, Checksum, +16, Stopbyte, +[/table]]]> + + 149 + 2013-09-09 23:44:27 + 2013-09-09 23:44:27 + closed + closed + m-bus-master-part-2 + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + + + + M-Bus Master, Part 3 (Water) + https://a385e5.wordpress.com/2013/09/10/m-bus-master-part-3/ + Tue, 10 Sep 2013 22:00:57 +0000 + whottgenroth + http://a385e-5.de/?p=174 + + Wasserzaehler + +(Note the thin grey cable, that's the M-Bus cable.) + +And, after a small modification of the circuit I can talk to water meter and electric power meter connected in parallel to the master. + + + +
    +laser-drucker_005120 + +IC2 was already added in the last step, since the output of the analog circuit and the requirements of the MCU didn't match concerning their logical polarity. + +Now, T3 (BS108) and R9 (2k2) have been added to disable the receive path while data is transmitted. +
    + + +Responding the REQ_UD2 command, the water meter sends this telegram (address 0x30 has been assigned to it first): + + +so 10 5b 30 8b 16 +success +SO RESP: 68 46 46 68 08 30 72 45 71 43 00 24 23 25 07 02 00 00 00 0C +13 51 84 00 00 8C 10 13 00 00 00 00 0B 3B 00 00 00 0B 26 62 06 00 02 +5A CC 00 04 6D 17 16 A9 19 7C 13 00 00 00 00 FC 10 13 00 00 00 00 72 +6C 00 00 42 EC 7E BF 1C 35 16 + + +A closer look, consulting the M-Bus documentation reveals the meaning: + +[table]Octet(s), Field, Meaning +68 46 46 68, Preamble with length, +08, C field, +30, A field (address), +72, CI field, variable data response + +45 71 43 00, Ident. No., +24 23, Manufacturer , HYD = Hydrometer GmbH +25, Version, +07, Medium, Water +02, Access No., +00, Status, +00 00, Signature, + +0C, DIF, 8 digit BCD +13, VIF, Volume; 10^(3-6)m^3 +51 84 00 00, Value, 8.451m^3 +8C, DIF, ext; 8 digit BCD +10, DIFE, minimum value +13, VIF, Volume; 10^(3-6)m^3 +00 00 00 00, Value, 0 +0B, DIF, 6 digit BCD +3B, VIF, Volume flow; 10^(3-6)m^3/h +00 00 00, Value, 0 +0B, DIF, 6 digit BCD +26, VIF, Operating time; hours +62 06 00, Value, 662h = 27.6d +02, DIF, 16bit integer +5A, VIF, Flow Temperature; 10^(2-3)°C +CC 00, Value, 20.4°C +04, DIF, 32bit integer +6D, VIF, Time Point; time&date +17 16 A9 19, Value, +7C, DIF, LSB; value during error state; 8 digit BCD +13, VIF, Volume; 10^(3-6)m^3 +00 00 00 00, Value, 0 +FC, DIF, ext; LSB; value during error state; 8 digit BCD +10, DIFE, tariff 1 +13, VIF, Volume; 10^(3-6)m^3 +00 00 00 00, Value, 0 +72, DIF, LSB; value during error state; 16bit integer +6C, VIF, Time Point; date +00 00, Value, 0 +42, DIF, LSB; 16bit integer +EC, VIF, ext; Time Point; date +7E, VIFE, ?? +BF 1C, Value, + +35, Checksum, +16, Stopbyte, +[/table] + +Decoding of the time&date type is done like this: +
    +    if (t_data)
    +    {
    +        if (t_data_size == 4) // Type F = Compound CP32: Date and Time
    +        {
    +            if ((t_data[0] & 0x80) == 0) // Time valid ?
    +            {
    +                t->tm_min = t_data[0] & 0x3F;
    +                t->tm_hour = t_data[1] & 0x1F;
    +                t->tm_mday = t_data[2] & 0x1F;
    +                t->tm_mon = (t_data[3] & 0x0F) - 1;
    +                t->tm_year = ((t_data[2] & 0xE0) >> 5) |
    +                              ((t_data[3] & 0xF0) >> 1);
    +                t->tm_isdst = (t_data[1] & 0x80) ? 1 : 0; // day saving time
    +            }
    +        }
    +        else if (t_data_size == 2) // Type G: Compound CP16: Date
    +        {
    +            t->tm_mday = t_data[0] & 0x1F;
    +            t->tm_mon = (t_data[1] & 0x0F) - 1;
    +            t->tm_year = ((t_data[0] & 0xE0) >> 5) |
    +                         ((t_data[1] & 0xF0) >> 1);
    +        }
    +    }
    +
    +(Found on github in the libmbus repo.) +]]>
    + + 174 + 2013-09-10 22:00:57 + 2013-09-10 22:00:57 + closed + closed + m-bus-master-part-3 + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + +
    + + M-Bus Master, Part 4 (Gas) + https://a385e5.wordpress.com/2013/09/11/m-bus-master-part-4-gas/ + Wed, 11 Sep 2013 19:49:21 +0000 + whottgenroth + http://a385e-5.de/?p=194 + + Foto + +First, assign address 0x40: + +so 68 06 06 68 53 fe 51 01 7a 40 5d 16 +success +SO RESP: E5 + + +And it works: + +so 10 40 40 80 16 +success +SO RESP: E5 + + +And here is the measurement: + +so 10 5b 40 9b 16 +success +SO RESP: 68 56 56 68 08 40 72 43 60 52 00 77 04 14 03 CA 10 00 00 0C 78 76 03 01 10 0D 7C 08 44 49 20 2E 74 73 75 63 0A 30 30 30 30 30 30 30 30 30 30 04 6D 38 15 AA 19 02 7C 09 65 6D 69 74 20 2E 74 61 62 22 0C 04 13 C1 0E 00 00 04 93 7F 4E 01 00 00 44 13 5D 08 00 00 0F 01 00 1F DE 16 + + + +[table]Octet(s), Field, Meaning +68 56 56 68, preamble and length, +08, C Field, +40, A Field, +72, CI Field, variable data response +43 60 52 00, Ident. No., +77 04, Manufacturer, ACW; Actaris (Itron) +14, Version, +03, Medium, Gas, +CA, Access No, +10, Status, +00 00, Signature, +0C, DIF, 8 digit BCD +78, VIF, Fabrication No +76 03 01 10, Value, +0D, DIF, variable length +7C, VIF, true in following string; length in first byte +08, VIF, first byte; length = 8 +44 49 20 2E 74 73 75 63, VIF, Value (LSB first) = "cust. ID"; +0A, Value, length = 10 +30 30 30 30 30 30 30 30 30 30, Value, data +04, DIF, 32bit integer +6D, VIF, Time Point; time&date +38 15 AA 19, Value, +02, DIF, 16bit integer +7C, VIF, true in following string; length in first byte +09, VIF, first byte; length = 9 +65 6D 69 74 20 2E 74 61 62, VIF, Value (LSB first) = "bat. time" +22 0C, Value; +04, DIF, 32bit integer +13, VIF, Volume; 10^(3-6)m^3 +C1 0E 00 00, Value, +04, DIF, 32bit integer +93, VIF, ext; Volume; 10^(3-6)m^3 +7F, VIFE, +4E 01 00 00, Value, +44, DIF, 32bit integer +13, VIF, Volume; 10^(3-6)m^3 +5D 08 00 00, Value, +0F, DIF, Special Functions; Start of manufacturer specific data structures to end of user data +01 00 1F, , +DE , Checksum, +16, Stopbyte +[/table]]]> + + 194 + 2013-09-11 19:49:21 + 2013-09-11 19:49:21 + closed + closed + m-bus-master-part-4-gas + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + + + + M-Bus Master, Part 5 + https://a385e5.wordpress.com/2013/09/21/m-bus-master-part-5/ + Sat, 21 Sep 2013 19:14:31 +0000 + whottgenroth + http://a385e-5.de/?p=224 + + laser-drucker_005122 + +Foto 1 + +(Milling aluminum is something else than milling wood. One cutter and nearly the front panel have been ruined. Don't know how to do it right, but very slow revolution and feed helped at least a bit. Maybe the cutter should have been cooled.) + +Foto 4 Kopie + +Here is the firmware for the Arduino.]]> + + 224 + 2013-09-21 19:14:31 + 2013-09-21 19:14:31 + closed + closed + m-bus-master-part-5 + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + allowed_role + + + + original_post_id + + + + _wp_old_slug + + + + + DHCP server on a MacBook + https://a385e5.wordpress.com/2013/11/07/dhcp-server-on-a-macbook/ + Thu, 07 Nov 2013 19:53:06 +0000 + whottgenroth + http://a385e-5.de/?p=244 + + +%% +due 1 DE:AD:BE:EF:FE:ED 192.168.75.20 + + +/etc/bootpd.plist: +
    +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    +<plist version="1.0">
    +  <dict>
    +    <key>bootp_enabled</key>
    +    <false/>
    +    <key>dhcp_enabled</key>
    +    <array>
    +       <string>en2</string>
    +    </array>
    +    <key>Subnets</key>
    +    <array>
    +      <dict>
    +        <key>name</key>
    +        <string>internal</string>
    +        <key>net_mask</key>
    +        <string>255.255.255.0</string>
    +        <key>net_address</key>
    +        <string>192.168.75.0</string>
    +        <key>net_range</key>
    +        <array>
    +          <string>192.168.75.20</string>
    +          <string>192.168.75.29</string>
    +        </array>
    +        <key>allocate</key>
    +        <true/>
    +      </dict>
    +    </array>
    +  </dict>
    +</plist>
    +
    + +And finally a small script to assign the address and start the server: +
    +#!/bin/sh
    +
    +INTF=en2
    +
    +ifconfig $INTF alias 192.168.75.1
    +/usr/libexec/bootpd -D -d -i $INTF
    +ifconfig $INTF -alias 192.168.75.1
    +
    + +Done. + +Once the script is started, it assigns the IP address and starts the booted (the DHCP server). The server will not detach from the terminal and does not fork into background. So, it can simply be stopped using Ctrl-C. However, Ctrl-C also interrupts the script and the unassigning of the address is not executed. This unfortunately needs to be done manually. + +Now I can connect the Adruino Ethernet directly to my MacBook and it will receive the network configuration from it.]]>
    + + 244 + 2013-11-07 19:53:06 + 2013-11-07 19:53:06 + closed + closed + dhcp-server-on-a-macbook + publish + 0 + 0 + post + + 0 + + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + +
    + + Has this large file something else than zeros? + https://a385e5.wordpress.com/2013/11/08/has-this-large-file-something-else-than-zeros/ + Fri, 08 Nov 2013 14:37:22 +0000 + whottgenroth + http://a385e-5.de/?p=251 + + +#include <stdio.h> +#include <stdlib.h> + +int main(int argc, const char* argv[]) { + if (argc != 2) { + printf("give filenamen"); + exit(1); + } + + + FILE *f = fopen(argv[1], "r"); + + const unsigned int BUFSIZE = 4096; + unsigned char buffer[BUFSIZE]; + + unsigned long cnt = 0; + unsigned long found = 0; + size_t r; + + while (0 != (r = fread(&buffer, 1, BUFSIZE, f))) { + cnt += r; + for (int i = 0; i < r; i++) { + if (0 != *(buffer + i)) { + found++; + } + } + if (0 == (cnt % 1000000)) { + printf("cnt: %ld, found: %ldn", cnt, found); + } + } + + printf("finally: cnt: %ld, found: %ldn", cnt, found); +} + + +Compile it using: +
    +gcc -std=c99 -o notnull notnull.c
    +
    ]]>
    + + 251 + 2013-11-08 14:37:22 + 2013-11-08 14:37:22 + closed + closed + has-this-large-file-something-else-than-zeros + publish + 0 + 0 + post + + 0 + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + +
    + + Arduino operated Current Sink + https://a385e5.wordpress.com/2014/01/08/current-sink/ + Wed, 08 Jan 2014 12:13:16 +0000 + whottgenroth + http://a385e-5.de/?p=264 + + 20140108-131111.jpg + +20140108-131229.jpg + +The current through the sink is controlled using an op amp (TS912), current is measured with one of three shunt resistors (0.1R, 1R, 10R), reference voltage for the op is provided by a DAC (LTC1257), which in turn is operated by the Arduino. The 2N3055 power transistor is driven through a BD135 connected in a Darlington circuit. + +Additionally to providing a given value through the DAC, the actual current value is measured of the same shunt resistor using an ADC (MAX187). As an auxilliary value, the voltage at the terminals of the sink is measured, also using an ADC (again MAX187) through a voltage divider. + +The user interface is setup with a 16*2 LCD display and a rotary encoder with push button. + +20140108-131150.jpg + +Besides this "hardware user interface" it is also possible the control the device with commands send over the USB port. + +Here are the schematics: + + + +laser-drucker_005479_2 + + +And finally, here is the source code: CurrentSink-0.9.tar.gz]]> + + 264 + 2014-01-08 12:13:16 + 2014-01-08 12:13:16 + closed + closed + current-sink + publish + 0 + 0 + post + + 0 + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + + + + Debouncing a rotary encoder is really hard + https://a385e5.wordpress.com/2014/01/08/debouncing-a-rotary-encoder-is-really-hard/ + Wed, 08 Jan 2014 20:24:08 +0000 + whottgenroth + http://a385e-5.de/?p=278 + + +const unsigned long DEBOUNCING_DEAD_TIME = 100; +const int DEBOUNCING_REPEAT = 1000; + + +volatile int rotaryCount = 0; +volatile bool switchState = false; +volatile unsigned long lastEvent = 0; + +int myDigitalRead(int a) { + int r = 0; + for (int i = 0; i < DEBOUNCING_REPEAT; i++) { + if (digitalRead(a) == HIGH) { + r++; + } else { + r--; + } + } + int res = -1; + if (r >= (DEBOUNCING_REPEAT / 2)) { + res = 1; + } else if (r <= -1 * (DEBOUNCING_REPEAT / 2)) { + res = 0; + } + return res; +} + +void rotary_a_interrupt() { + unsigned long currentEvent = millis(); + + if ((lastEvent == 0) || (lastEvent + DEBOUNCING_DEAD_TIME < currentEvent)) { + lastEvent = currentEvent; + + int a = myDigitalRead(ROTARY_A); + int b = myDigitalRead(ROTARY_B); + + if (((a != -1) && (b != -1))) { + if (a == b) { + rotaryCount++; + } else { + rotaryCount--; + } + } + } +} + +void rotary_b_interrupt() { + unsigned long currentEvent = millis(); + + if ((lastEvent == 0) || (lastEvent + DEBOUNCING_DEAD_TIME < currentEvent)) { + lastEvent = currentEvent; + + int a = myDigitalRead(ROTARY_A); + int b = myDigitalRead(ROTARY_B); + + if (((a != -1) && (b != -1))) { + if (a == b) { + rotaryCount--; + } else { + rotaryCount++; + } + } + } +} + +void switch_interrupt() { + unsigned long currentEvent = millis(); + + if ((lastEvent == 0) || (lastEvent + DEBOUNCING_DEAD_TIME < currentEvent)) { + lastEvent = currentEvent; + + switchState = true; + } +} + +void hardwareInit() { + pinMode(SWITCH, INPUT_PULLUP); + pinMode(ROTARY_A, INPUT_PULLUP); + pinMode(ROTARY_B, INPUT_PULLUP); + attachInterrupt(SWITCH_IRQ, switch_interrupt, FALLING); + attachInterrupt(ROTARY_A_IRQ, rotary_a_interrupt, CHANGE); + attachInterrupt(ROTARY_B_IRQ, rotary_b_interrupt, CHANGE); +} + + +The primary problem was not to get any rotary event of the wrong direction, the secondary problem was not to miss too much events, best of course none. + +Only the combination of a dead time after one interrupt and validating a read pin state by rereading it MANY times solved the primary problem. To solve the secondary problem too, the validation has be softened by not requiring all reread states to have the same value but accepting a limited number of wrong values. +]]> + + 278 + 2014-01-08 20:24:08 + 2014-01-08 20:24:08 + closed + closed + debouncing-a-rotary-encoder-is-really-hard + publish + 0 + 0 + post + + 0 + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + + + + Another (better) MBus-Master, Part 1 + https://a385e5.wordpress.com/2014/01/14/another-better-mbus-master/ + Tue, 14 Jan 2014 20:18:09 +0000 + whottgenroth + http://a385e-5.de/?p=326 + + 20140115-171708.jpg + +More follows soon ...]]> + + 326 + 2014-01-14 20:18:09 + 2014-01-14 20:18:09 + closed + closed + another-better-mbus-master + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + + + + Another (better) MBus-Master, Part 2 + https://a385e5.wordpress.com/2014/01/15/another-better-mbus-master-part-2/ + Wed, 15 Jan 2014 21:56:11 +0000 + whottgenroth + http://a385e-5.de/?p=331 + + Foto 2 + +Switching the TX-path with 1kHz, 80% duty cycle: + +Foto 1 + +Loading the TX-path with about 250mA (the current sink specifically built - see here - for this project is here in operation): + +Foto 3 + + +Finally, here are the most recent schematics of this new MBus-Master: + +MBusMaster2 + +(The TX-test and the test for recognition of the 10mA swing have been done without the MCU at the moment.)]]> + + 331 + 2014-01-15 21:56:11 + 2014-01-15 21:56:11 + closed + closed + another-better-mbus-master-part-2 + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + + + + Another (better) MBus-Master, Part 3 + https://a385e5.wordpress.com/2014/01/18/another-better-mbus-master-part-3/ + Sat, 18 Jan 2014 21:15:10 +0000 + whottgenroth + http://a385e-5.de/?p=358 + + Foto + +MBusMaster2-1 + + + +
    Well, it seems, that this way of over current signaling to the MCU does not work properly. In the first design, the input of the comparator was directly the lower end of the shunt resistor, which worked. So, the differentiator is required of current measurement, but is not usable for over current signaling. Needs some more work.
    + + + +The both blue LEDs show activity on RX and TX, the red LED signals over current. + +The whole development setup: + +20140118-200610.jpg + +Power supply: + +20140118-200600.jpg + +Load simulation: + +20140118-200526.jpg + +Wave form of a simple communication: + +20140118-200623.jpg + +(Yellow is the voltage on the bus, blue is the control signal of the sample-hold-device.) + +The test client: + +20140118-200540.jpg + +And finally, some communication with the master: + +Bildschirmfoto 2014-01-18 um 22.13.50]]>
    + + 358 + 2014-01-18 21:15:10 + 2014-01-18 21:15:10 + closed + closed + another-better-mbus-master-part-3 + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + +
    + + Another (better) MBus-Master, Part 4 + https://a385e5.wordpress.com/2014/01/22/another-better-mbus-master-part-4/ + Wed, 22 Jan 2014 09:15:05 +0000 + whottgenroth + http://a385e-5.de/?p=370 + + Foto 3 + +The beast works as it should, with no additional load, only one slave connected or with different additional load (50mA, 150mA, 250mA), simulating the related number of slaves (1mA per slave). + + +However, receive the signal has gone really bad. + +First, here are the signal without onboard SMPS, for comparison: + +without_smps + +(blue is trigger of S/H device, yellow is output of difference amplifier) + + +This is with the SMPS, with an additional load of 200mA: + +with_smps + +with_smps_2 + +The receive signal can still be recognized and the comparator does it's job, but the difference is impressive - although not really unexpected. + +Here is it with the SMPS again, now without additional load: + +with_smps_noload + +So, the SMPS must either be strictly separated from the remaining circuit on one board or even better be placed on a separate board - however, putting the SMPS and the receive recognition so close to each other was - rethinking it now - asking for trouble. +]]> + + 370 + 2014-01-22 09:15:05 + 2014-01-22 09:15:05 + closed + closed + another-better-mbus-master-part-4 + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + + + + Another (better) MBus-Master, Part 5 + https://a385e5.wordpress.com/2014/02/08/another-better-mbus-master-part-5/ + Sat, 08 Feb 2014 22:36:24 +0000 + whottgenroth + http://a385e-5.de/?p=391 + + 20140208-213036.jpg + +The SMPS is implemented using an LM2577 module, although first a XL6009 was planned, but this is a different story. + +With the rest of the circuit, which has already been introduced before it looks this way: + +20140208-213315.jpg + +And now the receive signals are very clear again: + +20140208-213433.jpg + +Blue is the receive signal measured at the output of the comparator, yellow is the transmit signal measured as the bus voltage. + +Here, for comparison to the screenshots in the last post, the trigger of the S/H device in blue and the output of the difference amplifier in yellow: + +20140209-162211.jpg]]> + + 391 + 2014-02-08 22:36:24 + 2014-02-08 22:36:24 + open + closed + another-better-mbus-master-part-5 + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + + Another (better) MBus-Master, Part 6 + https://a385e5.wordpress.com/2014/02/13/another-better-mbus-master-part-6/ + Thu, 13 Feb 2014 07:03:50 +0000 + whottgenroth + http://a385e-5.de/?p=403 + + main + +MeterBusPowerMaster-2014-02-13 + +The circuit requires two supply voltages: +5V (named so in the schematics) and +35V (named ''vcc'' in the schematics). + +Note, please: there is still no over current protection in the design. + +If you like to use this design for your own purposes, feel free (and maybe, you want to let me know, especially if you enhance the design somehow). But don't blame me if something goes wrong. This design is working successfully in my basement, but, as mentioned before, it has still no over current protection (so, avoid short cuts on the bus wires). Furthermore, I can't state whether it is fully complaint to EN 13757 standard or not.]]> + + 403 + 2014-02-13 07:03:50 + 2014-02-13 07:03:50 + open + closed + another-better-mbus-master-part-6 + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + + 4 Channel MBus-connected Thermometer, Part 1 + https://a385e5.wordpress.com/2014/02/21/4-channel-mbus-connected-thermometer/ + Fri, 21 Feb 2014 06:39:45 +0000 + whottgenroth + http://a385e-5.de/?p=411 + + + +Measurement side of thing is working already. An Analog Devices AD7190 is used as ADC, an Arduino-compatible Micro Pro serves as MCU. For the communication side a TSS721A is awaited. +]]> + + 411 + 2014-02-21 06:39:45 + 2014-02-21 06:39:45 + open + closed + 4-channel-mbus-connected-thermometer + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + + 4 Channel MBus-connected Thermometer, Part 2 + https://a385e5.wordpress.com/2014/03/09/4-channel-mbus-connected-thermometer-part-2/ + Sun, 09 Mar 2014 22:30:45 +0000 + whottgenroth + http://a385e-5.de/?p=419 + + Foto 2 + +MBus-transceiver TSS721A in breadbroad setup with two opto-coupler, connected to the thermometer and to the lab MBus-master: + +Foto 1 + +Test setup with thermometer, MBus-transceiver and lab MBus-master (still open enclosure since over current protection is not yet available, just to not forget it ...): + +Foto 4 +And, yes, it works so far. Although it was a bit of a surprise to see the echo of any sent frame, however, the documentation revealed that this is actually a collision detection feature. + +]]> + + 419 + 2014-03-09 22:30:45 + 2014-03-09 22:30:45 + open + closed + 4-channel-mbus-connected-thermometer-part-2 + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + + Teensy meets "not so standard" UART configuration + https://a385e5.wordpress.com/2014/03/11/teensy-meets-not-so-standard-uart-configuration/ + Tue, 11 Mar 2014 21:12:03 +0000 + whottgenroth + http://a385e-5.de/?p=424 + + https://www.pjrc.com/teensy/index.html did a really good job with the Arduino integration Teensyduino. Thank you very much indeed. + +Unfortunately they missed a feature which has been integrated in the Arduino library sometimes between version 1.0.5 and 1.5.2, don't know when exactly: advanced UART configuration. + +In the documentation of Serial.begin(...) you see the option to give a config argument, where in particular you can configure the frame length, the parity and the number of stop bits. + +While this is certainly not a very common feature, I need it in my MeterBus projects, since communication on the MeterBus is serial communication with an even parity enabled. + +So far I was too lazy to put the stuff into a library, but this is required to enable even parity: + +
    +  #include <mk20dx128.h>
    +
    +  // [...]
    +
    +  // this is the new Arduino way of setting parity
    +  //Serial3.begin(2400, SERIAL_8E1);
    +
    +  // this is the Teensy (Freescale K20) way:
    +  Serial3.begin(2400);
    +  UART2_C1 |= UART_C1_PE | UART_C1_M;
    +
    + +Find the documentation for the UARTx_C1 register on page pp. 1055-1056, cp. 45.3.3 of the Freescale K20 manual (find that one on the Teensy homepage at https://www.pjrc.com/teensy/datasheets.html). + +Note: it is not enough to enable parity (setting the bit UART_C1_PE, you also need to increase the frame length to 9 bit by setting bit UART_C1_M, since the frame length seems to include the parity bit. + +Right, this is a hack, and maybe the Teensy people will integrate it into the library the other day, but at least for the moment it works for me. +]]>
    + + 424 + 2014-03-11 21:12:03 + 2014-03-11 21:12:03 + open + closed + teensy-meets-not-so-standard-uart-configuration + publish + 0 + 0 + post + + 0 + + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + +
    + + Tools for the Arduino Development + https://a385e5.wordpress.com/?p=436 + Mon, 30 Nov -0001 00:00:00 +0000 + whottgenroth + http://a385e-5.de/?p=436 + + http://www.baeyens.it/eclipse/ +Arduino Teensy Integration: http://www.pjrc.com/teensy/teensyduino.html +Arduino IDE: http://arduino.cc/en/Main/Software +]]> + + 436 + 2015-06-05 13:32:55 + 0000-00-00 00:00:00 + open + closed + + draft + 0 + 0 + post + + 0 + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + + Another (better) MBus-Master, Part 6 + https://a385e5.wordpress.com/2014/04/07/another-better-mbus-master-part-6-2/ + Mon, 07 Apr 2014 20:08:58 +0000 + whottgenroth + http://a385e-5.de/?p=445 + + main + +The over current protection is separated in a sensing part and a shutdown part. The comparator IC6B gets a threshold voltage using the potentiometer R18 and a signal voltage through the low pass filter of R19 and C3 (the values are not yet fine tuned). R21 and D7 are used to limit the output signal of the comparator, which is 35V power to a logic level. Through an inverter it goes to an interrupt line of the controller. An interrupt service routine in the controller firmware controls the transistor Q3 and pull down the positive input of the OP IC3A, which is part of the current source to shutdown the bus current. + +A receiver shutdown transistor (Q4) has been added. During tests with a dedicated poewr supply serious cross talk from the sender path in to the receiver path for a bus current of about 150mA has been discovered. This has not been investigated enough, just the receiver path has been shutdown during a send cycle. This is certainly only the second best solution, but it was a quick one. + +]]> + + 445 + 2014-04-07 20:08:58 + 2014-04-07 20:08:58 + open + closed + another-better-mbus-master-part-6-2 + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + 5 + + eddie.yim@dektech.com.au + + 203.45.32.221 + 2016-03-01 08:37:52 + 2016-03-01 06:37:52 + + 1 + + 0 + 0 + + + 6 + + wollud@a385e-5.de + + 85.115.56.180 + 2016-03-01 11:35:27 + 2016-03-01 09:35:27 + + 1 + + 5 + 88446352 + + + 7 + + bbates@energybilling.co.uk + http://www.energybilling.co.uk + 217.41.30.65 + 2016-04-14 16:49:36 + 2016-04-14 14:49:36 + + 1 + + 0 + 0 + + + 8 + + wollud@a385e-5.de + + 176.0.127.35 + 2016-04-17 15:44:36 + 2016-04-17 13:44:36 + + 1 + + 7 + 88446352 + + + + Network-attached MBus-Master + https://a385e5.wordpress.com/2014/05/11/network-attached-mbus-master/ + Sun, 11 May 2014 19:28:11 +0000 + whottgenroth + http://a385e-5.de/?p=456 + + IMG_2028 + +IMG_2030 + +And finally it is in "production": + +Foto]]> + + 456 + 2014-05-11 19:28:11 + 2014-05-11 19:28:11 + open + closed + network-attached-mbus-master + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + + 4 Channel MBus-connected Thermometer, Part 3 + https://a385e5.wordpress.com/2014/05/11/4-channel-mbus-connected-thermometer-part-3/ + Sun, 11 May 2014 19:29:54 +0000 + whottgenroth + http://a385e-5.de/?p=458 + + IMG_2032 + +]]> + + 458 + 2014-05-11 19:29:54 + 2014-05-11 19:29:54 + open + closed + 4-channel-mbus-connected-thermometer-part-3 + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + 9 + + jukka.nordstrom@jamsa.fi + + 192.89.77.223 + 2015-08-21 07:18:39 + 2015-08-21 05:18:39 + + 1 + + 0 + 0 + + + 10 + + jeremynet@gmail.com + https://alexhost.de/ + 176.123.2.40 + 2016-06-11 11:08:44 + 2016-06-11 09:08:44 + + 1 + + 0 + 0 + + + 11 + + wollud@a385e-5.de + + 84.61.180.62 + 2016-06-11 11:15:54 + 2016-06-11 09:15:54 + + 1 + + 10 + 88446352 + + + + Review of network-attached M-Bus master, design version 6 + https://a385e5.wordpress.com/2014/08/04/review-of-network-attached-m-bus-master-design-version-6/ + Mon, 04 Aug 2014 09:41:01 +0000 + whottgenroth + http://a385e-5.de/?p=475 + + here and the modifications I applied to turn it into a network-attached M-Bus master, which I describe here. + +Here is a kind of a personal review of that design, especially considering the modifications: + + +
      +
    • I replaced the Arduino Pro Micro by an Teensy 3.1 connected to a WIZNet module.
    • +
    • I introduced a power supply with three voltages: 34V, 32V and 3.3V.
    • +
    • 3.3V obviously for the MCU, the ethernet module and the 74HC04, 34V for the main analog part, it just replaced the VCC in the schematics.
    • +
    • Than I removed the four diodes D1-4 and connected 32V directly to the top terminal of R6.
    • +
    + + +While in the design version 6 I had a very clear voltage shift at pin 1 of IC1A of about 100mV for the received logic levels at the bus, this signal was very noisy in the later design. Before replacing the diodes D1-4 by a separate supply voltage, it was nearly unusable and I was not able to communicate reliably using the device. + +After introducing the separate 32V supply voltage the signal got better, but still not as good as in design version 6. However, I was able to communicate again. + +Nevertheless I ran into another problem: the SNR was going worse for very small and very large bus currents. So, I added a 10k resistor parallel to R7 to drain a minimum bus current of about 3mA and I had to limit the maximum bus current to about 70mA. This is equal to about 70 slave devies. In my setup this is no problem, I use the device just for fun in the basement, in other setups, where actually 250 slaves should be handled, it is a problem. + +I think the major cause for the noise is the stronger, higher clocked, MCU and the WIZnet, which impact noise into the ground lines. (Unfortunately, the Arduino flash is not large enough for my firmware after adding the ethernet code.) And moreover my "breadboard production approach" is certainly a problem. A well layouted PCB with large supply planes leads hopefully to much better results and some more bypass capacitors and ferrit beads would help too. + +May be increasing the value of R6 should also be considered. It would increase the voltage shift at the output of a difference amplifier after the S/H device (pin 1 of IC1A). + +All in all, considering both the design version 6 and the network-attached M-Bus master, it becomes clear that it is possible to build a network-attached M-Bus master using the concept. + + + +]]>
    + + 475 + 2014-08-04 09:41:01 + 2014-08-04 09:41:01 + open + closed + review-of-network-attached-m-bus-master-design-version-6 + publish + 0 + 0 + post + + 0 + + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + +
    + + 2-Wire Lightsensor with MBus-interface (bus-powered) + https://a385e5.wordpress.com/2014/10/04/2-wire-lightsensor-with-mbus-interface-bus-powered/ + Sat, 04 Oct 2014 22:17:07 +0000 + whottgenroth + http://a385e-5.de/?p=486 + + IMG_2378 + +Here, it is already mounted on the sill outside the window with a piece of double-faced adhesive tape, enclosed in the package of an Apple Magic Mouse. + +Note the piece in the lower-right corner (not the 10k resistor, next to it). This is finally the light sensor. It is regular BC177 transistor in metal case with the cap removed with a small Proxxon cutting-off machine. Works perfectly. + +The whole thing consumes about 500uA (the jumper in the top-middle is in the power line between the bus-transceiver and the rest of the circuit, just to measure the current). + +scan_006048 + +BTW, this is my first MSP430 project. It is much more "low-power" than the AVRs on the Arduino boards ... + +One note on the inhouse-wiring: The MBus-master is in the basement, the light sensor on the second floor. How to bring the MBus upstairs? Just use the already available infrastructure (Ethernet) cabling, which goes up from the patch panel in the basement into every room. + +Here are the sources: MBusLightSensor-2014-10-05]]> + + 486 + 2014-10-04 22:17:07 + 2014-10-04 22:17:07 + open + closed + 2-wire-lightsensor-with-mbus-interface-bus-powered + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + + A simple Modbus RTU to TCP gateway + https://a385e5.wordpress.com/2014/10/27/a-simple-modbus-rtu-to-tcp-gateway/ + Mon, 27 Oct 2014 10:55:32 +0000 + whottgenroth + http://a385e-5.de/?p=505 + + IMG_1045 + +Communication works: + +SCR04 + +(Blue and yellow are the Modbus lines, purple is TX at the microcontroller, green is RT at the microcontroller.) +]]> + + 505 + 2014-10-27 10:55:32 + 2014-10-27 10:55:32 + open + closed + a-simple-modbus-rtu-to-tcp-gateway + publish + 0 + 0 + post + + 0 + + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + + Measuring the speed of a salad spinner + https://a385e5.wordpress.com/2014/12/11/measuring-the-speed-of-a-salad-spinner/ + Thu, 11 Dec 2014 14:18:20 +0000 + whottgenroth + http://a385e-5.de/?p=506 + + IMG_2597 + +Second, attach two small but strong magnets at the spinner, one on each side, to let it run weighty: + +IMG_2600 + +Third, connect the probe to a power-supply, an oscilloscope and a frequency-counter: + +IMG_2599 + +The oscilloscope is required to find the right position of the probe, the counter is required for the actually measurement. + +And then: turn the spinner: + +[youtube https://www.youtube.com/watch?v=ezTvoh3vguI&w=560&h=315] + +Here, in this clip, we measured about 43Hz. In another test it was even 52Hz. + +Since we have two magnets, we had 21.5 rps and in the other test 26 rps. These are 1290 rpm and 1560 rpm. That's fast. +]]> + + 506 + 2014-12-11 16:18:20 + 2014-12-11 14:18:20 + open + closed + measuring-the-speed-of-a-salad-spinner + publish + 0 + 0 + post + + 0 + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + + Very simple metal detector + https://a385e5.wordpress.com/2014/12/16/very-simple-metal-detector/ + Mon, 15 Dec 2014 22:16:32 +0000 + whottgenroth + http://a385e-5.de/?p=513 + + Theremin let my to the idea, that varying the value of the inductivity by approaching some metal should also detune one of two oscillators. + +20141215123534365a + +Here, I reuse the design of the oscillator and the mixer from my Theremin and fed the mixed signal into a low pass filter, calculated with Analog's excellent Filter Wizard. + +IMG_2629 + +This was btw the first deployment of my new Rigol power supply: + +IMG_2615 + +The both identical 30V-Max-channels, put in tracking mode, can easily be used as a symmetric power supply, as it is required for the mixer and the filter. + +The reference frequency is provided using a generator: + +IMG_2616 + + + +This is the full measurement setup: + +IMG_2630 + +I use one oscilloscope to show the varying (yellow) and the reference (blue) frequency, here in the tuned state: + +tuned + +When detuning the test oscillator by approaching some metal to the coil, there varying frequency starts wandering on the screen: + +detuned +And here are the results: + +[gallery columns="2" ids="546,545,544,525,543,528,541,540,535,534"]]]> + + 513 + 2014-12-16 00:16:32 + 2014-12-15 22:16:32 + open + closed + very-simple-metal-detector + publish + 0 + 0 + post + + 0 + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + + A small Royer Induction Heater + https://a385e5.wordpress.com/2015/01/01/a-small-royer-induction-heater/ + Thu, 01 Jan 2015 19:39:19 +0000 + whottgenroth + http://a385e-5.de/?p=564 + + IMG_2723 + +Of course it works, several people built it before and published photos and videos. But now I did it on my own: a rather small induction heater. + +IMG_2719 + +scan_006379 + +In the first photo I ran it with only 12V and at about 2.5A, but this was enough to bring a small nail to red heat. + +Some waveforms: + + +At the gate of one of the MOSFETs: + +gate + + +At the drain of one of the MOSFETs: + +drain + + +And finally across the capacitor: + +capacitor + + +]]> + + 564 + 2015-01-01 21:39:19 + 2015-01-01 19:39:19 + open + closed + a-small-royer-induction-heater + publish + 0 + 0 + post + + 0 + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + 12 + + izxdwju@gmail.com + http://amdelmedical.com/forum/member/profile/20151126/32.php + 221.237.114.66 + 2015-11-28 21:34:51 + 2015-11-28 19:34:51 + + 1 + + 0 + 0 + + + + A fully digital controlled SMPS for up to 100V, 1.5KW + https://a385e5.wordpress.com/2015/06/17/a-fully-digital-controlled-smps-for-up-to-100v-1-5kw/ + Wed, 17 Jun 2015 09:49:45 +0000 + whottgenroth + http://a385e-5.de/?p=575 + + IMG_2941 + + + + + + +Transformer, 230V to 90V, 1.5KW, 11kg, 12€ on ebay + +IMG_2944 + + +Transformer Start Relay + +IMG_2945 + + +Rectifier + +IMG_2946 + + +Filter capacitors (4x5100uF), with discharging resistor (10kOhm) + +IMG_2948 + + +Power stage with switch, diode (in one package, 300A, 1000V), inductor (about 140uH) and capacitors (2x2000uF) + +IMG_2943 + + +Controller, with MSP430, opto-coupler and push-pull-stage for driving the power switch with PWM signal from MCU, voltage-divider and op-amp for feedback voltage, display and some pushbuttons + +IMG_2942 + + +Load for testing + +IMG_2947 + +]]> + + 575 + 2015-06-17 11:49:45 + 2015-06-17 09:49:45 + open + closed + a-fully-digital-controlled-smps-for-up-to-100v-1-5kw + publish + 0 + 0 + post + + 0 + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + + WiFi Powermeter + https://a385e5.wordpress.com/2015/06/05/wifi-powermeter/ + Fri, 05 Jun 2015 09:57:33 +0000 + whottgenroth + http://a385e-5.de/?p=588 + + IMG_3151 + + + + + +This is how it looks in its box: + +IMG_3217 + +I used it to measure the power consumption of the fridge in the basement or of the PC of my son and so on. + +On the MQTT broker there is one subscriber who transfers all the measurements into a MongoDB, where it now waits for further analysis. + +The hardware is rather simple: an Arduino Mega (since it has more than one serial interface), an Arduino WiFi shield and on top a RS485 adaptor for the Modbus communication. + +For the software I'm using the Modbus library from https://code.google.com/p/simple-modbus/. Unfortunately, it disappeared right there, don't know why. Seems, that I have to be really careful with the files. The MQTT library I'm using is from http://knolleary.net/arduino-client-for-mqtt/. + +With the couple of the WiFi library and the MQTT library I ran into two problems. + +First, it was not possible to establish an MQTT connection at all. Strange, since via Ethernet it wasn't a problem at all. I found, supported by Google that that the WiFi library and the shield handles a stop() on a fresh client socket somewhat strange: The socket can not be open or will be closed immediately after opening. Since at least in my case I always give a fresh WiFiClient into the PubSubClient I removed the connected() call from the top of the connect method in PubSubClient.cpp. + +Second, I ran into the problem that messages I published via PubSubClient using an Arduino Mega and an Arduino Wifi Shield which are large than about 80 octets did not appear at the broker. I found by googling that it is not possible to send more than 90 octets using the Wifi Shield and the related library at once: http://mssystems.emscom.net/helpdesk/knowledgebase.php?article=51 +And that exactly what I experienced too: I increased the buffer size one by one and at 90 octets it stopped and the WiFi library lost the connection. + +Using this patch, which I applied against release 1.9.1 everything works fine now: + +[code language="cpp"] +42,43c42 +< // if (!connected()) { +< if (true) { +--- +> if (!connected()) { +217d215 +< // Serial.print("pub len: "); Serial.println(length-5); +219,220d216 +< } else { +< // Serial.println("connection lost"); +290,308c286 +< +< // Serial.print("write len: "); Serial.println(length+1+llen); +< // size_t olen = length + 1 + llen; +< // rc = _client->write(buf+(4-llen),length+1+llen); +< +< const size_t SEND_AT_ONCE = 64; +< size_t remains = length + 1 + llen; +< // Serial.print("write len: "); Serial.println(remains); +< const uint8_t *writebuf = buf + (4 - llen); +< bool result = true; +< while ((remains > 0) && result) { +< size_t actuallySendChars = (remains > SEND_AT_ONCE) ? SEND_AT_ONCE : remains; +< // Serial.print("tbs: "); Serial.println(actuallySendChars); +< size_t sentChars = _client->write(writebuf, actuallySendChars); +< result = sentChars == actuallySendChars; +< remains -= sentChars; +< writebuf += sentChars; +< } +< +--- +> rc = _client->write(buf+(4-llen),length+1+llen); +311,312c289 +< // return (rc == 1+llen+length); +< return result; +--- +> return (rc == 1+llen+length); +357,362c334 +< //Serial.print("rc: "); Serial.println(rc); +< if (!rc) { +< //Serial.println("would stop"); +< _client->stop(); +< // while (true); +< } +--- +> if (!rc) _client->stop(); +[/code] + + +Sources for the firmware are here: WiModbusGateway]]> + + 588 + 2015-06-05 11:57:33 + 2015-06-05 09:57:33 + open + closed + wifi-powermeter + publish + 0 + 0 + post + + 0 + + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + + Revisiting the MeterBus master + https://a385e5.wordpress.com/2015/06/05/revisiting-the-meterbus-master/ + Fri, 05 Jun 2015 10:14:46 +0000 + whottgenroth + http://a385e-5.de/?p=603 + + here and here early. By now, a cronjob on my MacMini in the basement was querying the device every minute to collect measurement results from the attached meters (water, gas, electricity, out door temperature). + +Now, I changed and improved the software slightly: + +First, I enabled the watchdog timer, since it occasionally happened that the device became unresponsive. In this case now the watchdog timer is triggered to reset the beast. + +Second, I modified the upstream communication. Now the master publishes the results of configured meters using the MQTT protocol. + +IMG_3167 + + + + + +Doing this, I ran into another problem with the MQTT library from http://knolleary.net/arduino-client-for-mqtt/. I had to increase the maximum packet size to 1024 bytes since some of the meters sent about 250 bytes, which I represent in a hex string in the MQTT payload. But as soon as the packet was higher the 256 bytes, only the first 256 bytes had been sent to the broker. Tracking this down to the write method in the MQTT library I found a uint8_t which a uint16_t should be: + +[code language="cpp"] +boolean PubSubClient::write(uint8_t header, uint8_t* buf, + uint16_t length) { + uint8_t lenBuf[4]; + uint8_t llen = 0; + uint8_t digit; + uint8_t pos = 0; + uint8_t rc; + uint8_t len = length; +[/code] + +Using uint16_t for the variable len immediately fixed this problem. + +Aha, and enabling the watchdog on the Teensy was also not that easy. Finally, I came to this solution: + +[code language="cpp"] +extern "C" { + void startup_early_hook( ) __attribute__ ((weak)); + void startup_early_hook() { + // enable watchdog + WDOG_UNLOCK = WDOG_UNLOCK_SEQ1; + WDOG_UNLOCK = WDOG_UNLOCK_SEQ2; + + // one minute + WDOG_TOVALL = 0xea60; + WDOG_TOVALH = 0; + WDOG_PRESC = 0; + + WDOG_STCTRLH = WDOG_STCTRLH_WDOGEN | + WDOG_STCTRLH_ALLOWUPDATE | + WDOG_STCTRLH_STOPEN | + WDOG_STCTRLH_WAITEN; + } +} // extern "C" +[/code] + +It this require the enable the watchdog in the startup_early_hook since the Cortex accepts it only the first 256 clock cycles. +Next, the extern "C" is important, otherwise the link does not find the overwrite of the function, since it is compile with a C++ file. + +The clock for the watchdog is taken from the LPO of the CPU, which is running at 1kHz. Thus, a timeout value of 0xea60 equals 60000 let to a watchdog timeout of one minute. Reading the K20 reference manual, which I found on the Teensy homepage, was really helpful here. + + + +Today, all the measurements from a couple of meters find their way via MQTT and a small serverside script into the MongoDB for further analysis. + +[code language="javascript"] +{ + "data":{ + "telegram":"68 38 38 68 08 51 72 10 01 00 13 2E 19 24 02 + 9C 00 00 00 8C 10 04 12 06 00 00 8C 11 04 12 + 06 00 00 02 FD C9 FF 01 E2 00 02 FD DB FF 01 + 00 00 02 AC FF 01 00 00 82 40 AC FF 01 00 00 + 09 16 ", + "uptime":52815 + }, + "metadata":{ + "device":"MeterbusHub", + "token":5, + "name":"dryer" + } +} +{ + "data":{ + "telegram":"68 61 61 68 08 21 72 00 00 00 00 00 00 01 00 + AA 00 00 00 01 24 03 01 25 0A 01 26 10 02 27 + 01 00 05 67 28 14 B3 3D 05 67 D2 45 E3 BA 05 + 67 9F B5 A7 41 05 67 79 13 E0 41 0F D0 27 00 + 00 AA 08 00 00 05 00 00 00 00 00 00 00 01 00 + 00 00 A2 C3 7F 3F A5 BA 7F 3F 85 A7 7F 3F E7 + F9 7F 3F CD CC CC 3D E8 03 00 00 8B 16 ", + "uptime":52822 + }, + "metadata":{ + "device":"MeterbusHub", + "token":1, + "name":"thermom." + } +} +{ + "data":{ + "telegram":"68 38 38 68 08 52 72 99 51 00 13 2E 19 21 02 + 86 00 00 00 8C 10 04 06 09 00 00 8C 11 04 00 + 09 00 00 02 FD C9 FF 01 E3 00 02 FD DB FF 01 + 00 00 02 AC FF 01 00 00 82 40 AC FF 01 00 00 + B3 16 ", + "uptime":52840 + }, + "metadata":{ + "device":"MeterbusHub", + "token":6, + "name":"laundry" + } +} +{ + "data":{ + "telegram":"68 92 92 68 08 50 72 81 14 01 11 2E 19 16 02 + A2 00 00 00 8C 10 04 82 62 85 00 8C 11 04 82 + 62 85 00 8C 20 04 00 00 00 00 8C 21 04 00 00 + 00 00 02 FD C9 FF 01 DD 00 02 FD DB FF 01 08 + 00 02 AC FF 01 0F 00 82 40 AC FF 01 00 00 02 + FD C9 FF 02 E2 00 02 FD DB FF 02 0C 00 02 AC + FF 02 16 00 82 40 AC FF 02 F7 FF 02 FD C9 FF + 03 E9 00 02 FD DB FF 03 09 00 02 AC FF 03 11 + 00 82 40 AC FF 03 FA FF 02 FF 68 00 00 02 AC + FF 00 36 00 82 40 AC FF 00 F1 FF 01 FF 13 00 + D2 16 ", + "uptime":52867 + }, + "metadata":{ + "device":"MeterbusHub", + "token":4, + "name":"electricity" + } +} +{ + "data":{ + "telegram":"68 46 46 68 08 30 72 45 71 43 00 24 23 25 07 + 4B 00 00 00 0C 13 83 50 43 00 8C 10 13 00 00 + 00 00 0B 3B 00 00 00 0B 26 69 58 01 02 5A B6 + 00 04 6D 30 0D E5 16 4C 13 96 41 33 00 CC 10 + 13 00 00 00 00 42 6C DF 1C 42 EC 7E FF 1C 01 + 16 ", + "uptime":53047 + }, + "metadata":{ + "device":"MeterbusHub", + "token":2, + "name":"water" + } +} +{ + "data":{ + "telegram":"68 56 56 68 08 40 72 43 60 52 00 77 04 14 03 + 56 10 00 00 0C 78 76 03 01 10 0D 7C 08 44 49 + 20 2E 74 73 75 63 0A 30 30 30 30 30 30 30 30 + 30 30 04 6D 23 0D E5 16 02 7C 09 65 6D 69 74 + 20 2E 74 61 62 A9 09 04 13 F5 A9 04 00 04 93 + 7F 4E 01 00 00 44 13 FC A5 04 00 0F 01 00 1F + 1C 16 ", + "uptime":53049 + }, + "metadata":{ + "device":"MeterbusHub", + "token":3, + "name":"gas" + } +} + +[/code] + +IMG_3168 + + +Sources for the firmware are here: NetMeterBusMaster2]]> + + 603 + 2015-06-05 12:14:46 + 2015-06-05 10:14:46 + open + closed + revisiting-the-meterbus-master + publish + 0 + 0 + post + + 0 + + + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + _oembed_5c78eaa2642fb8f2eb1cc6e2a4c65774 + + + + 13 + + skardal@me.com + + 92.221.115.124 + 2015-11-29 01:06:40 + 2015-11-28 23:06:40 + + 1 + + 0 + 0 + + + 14 + + wollud@a385e-5.de + + 85.115.56.180 + 2016-03-01 11:25:30 + 2016-03-01 09:25:30 + + 1 + + 13 + 88446352 + + + 15 + + lzxtct@163.com + + 144.82.194.97 + 2016-05-26 18:52:22 + 2016-05-26 16:52:22 + + 1 + + 0 + 0 + + + 16 + + wollud@a385e-5.de + + 84.61.180.62 + 2016-06-11 11:13:44 + 2016-06-11 09:13:44 + + 1 + + 15 + 88446352 + + + + RelayBox + https://a385e5.wordpress.com/2015/06/05/relaybox/ + Fri, 05 Jun 2015 11:10:02 +0000 + whottgenroth + http://a385e-5.de/?p=620 + + to make this: + +IMG_3234 + +IMG_3235 + + + + + + +On the first photo you see three high current switches (and on the right hand side two MBus power meters), on the second photo is the control stuff. From the bottom to the top there is a Meanwell power supply with 24V DC output for the switches and next to it a 5V SMPS for the Arduino. In the middle left is a card with eight opto coupler and an insulating DC-DC-converter for the feedback from the switches and on the right hand side an Arduino Mega with an Ethernet Shield. On top left just a row of screw terminal and on the left hand side a 8 port relay board from SainSmart. It is so cheap on ebay (only about 11€) you can not make it on you own - the parts would be more expensive. + +For eight ports 16 input and 16 output pins on the Arduino are required: eight in and eight out for feedback and relays, eight in and eight out for push buttons and signaling LEDs (they are not on the photo). + +This thing is controlled using the MQTT protocol too. A small Python coded webapp also siting on the broker serves as UI: + +IMG_3258 + +("Waschküche" is laundry room, "Küche" is kitchen and "Herd" is oven.) + +The thing publishes every second the status of the switches via MQTT: + +[code language="javascript"] +{ + "data":{ + "uptime":75407, + "switchStates":[ + { + "stateConflict":0, + "index":0, + "state":1, + "feedbackState":1 + }, + { + "stateConflict":0, + "index":1, + "state":1, + "feedbackState":1 + }, + { + "stateConflict":0, + "index":2, + "state":1, + "feedbackState":1 + }, + { + "stateConflict":0, + "index":3, + "state":0, + "feedbackState":0 + }, + { + "stateConflict":0, + "index":4, + "state":0, + "feedbackState":0 + }, + { + "stateConflict":0, + "index":5, + "state":0, + "feedbackState":0 + }, + { + "stateConflict":0, + "index":6, + "state":0, + "feedbackState":0 + }, + { + "stateConflict":0, + "index":7, + "state":0, + "feedbackState":0 + } + ] + }, + "metadata":{ + "device":"RelayBox" + } +} +[/code] + + +The sources for the webapp are here: RelayBoxWebApp + +The sources for the firmware are here: RelayBox]]> + to make this: +]]> + 620 + 2015-06-05 13:10:02 + 2015-06-05 11:10:02 + open + closed + relaybox + publish + 0 + 0 + post + + 0 + + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + 17 + + daniel@wiznet.co.kr + http://wiznet.co.kr + 222.98.173.194 + 2015-07-01 10:28:36 + 2015-07-01 08:28:36 + + 1 + + 0 + 0 + + + 18 + + wollud@a385e-5.de + + 217.7.123.82 + 2015-07-01 10:52:45 + 2015-07-01 08:52:45 + Meterbus master. It uses an Teensy 3.1 and your WIZnet breakout board. + +Yours, +Wolfgang]]> + 1 + + 17 + 88446352 + + + + First ESP8266 Project: WiFi Power Switch + https://a385e5.wordpress.com/2015/09/14/first-esp8266-project-wifi-power-switch/ + Mon, 14 Sep 2015 20:40:00 +0000 + whottgenroth + http://a385e-5.de/?p=671 + + IMG_3826 + +The ESP8266 boards (ESP-01, cmp. http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-01 +) were lying on my desk for already some time. I never took the time to install the SDK on my Mac. Now I came around nodemcu ( http://www.nodemcu.com/index_en.html) and it is exactly what I was looking for since a while: Lua on a microcontroller. The idea behind is simple: When you are coding on a PC (or a Mac) and you have a rather small problem, a rather simple task to perform, you (or at least: I) would tend to use a scripting language. On a PC my first choice would be Python, other people prefer Perl or even Lua. On a microcontroller I also was faced those simple tasks (like toggling one bit based on an MQTT message) but never had a scripting language available. But here it is. + + + + + +No need to install an SDK on the PC, just an upload tool like nodemcu-uploader.py or esplorer is required. First the nodemcu firmware needs to be installed on the ESP8266 board. I found a very good intro here. + +My Lua script for this project running on the microcontroller consists of two files: ''init.lua'' and ''mqtt.lua''. +Coding Lua for nodemcu isn't really intuitive, at least not when you come from Arduinos or so. You can't simple write a ''setup'' method and do all the initialization within and a ''loop'' method to be continuously run. Doing it this way would either drive you into the chip's watchdog and would consume any available CPU any and leave nothing for the WiFi and TCP/IP stack. You've to work with timers and callback functions. I found two really good articles here and here. + +What I also had to learn the hard way is that the nodemcu does not leave much space for the script. With a handful of debug messages containing some meaningful text (as it is no problem on the Arduino or Teensy) I over and over run into out of memory messages or even worse in misbehaving code. + +I finally came to this code: + +
    +-- init.lua
    +-- Constants
    +SSID    = "MessWLAN"
    +APPWD   = "geheim"
    +CMDFILE = "mqtt.lua" 
    +
    +-- Some control variables
    +wifiTrys     = 0    
    +NUMWIFITRYS  = 200 
    +
    +function launch()
    +  print("A")
    +  print("B: " .. wifi.sta.getip())
    +  tmr.alarm(0, 5000, 0, function() dofile(CMDFILE) end )
    +end
    +
    +function checkWIFI() 
    +  if ( wifiTrys > NUMWIFITRYS ) then
    +    print("C")
    +  else
    +    ipAddr = wifi.sta.getip()
    +    if ( ( ipAddr ~= nil ) and  ( ipAddr ~= "0.0.0.0" ) )then
    +      tmr.alarm( 1 , 500 , 0 , launch )
    +    else
    +      tmr.alarm( 0 , 2500 , 0 , checkWIFI)
    +      print("D: " .. wifiTrys)
    +      wifiTrys = wifiTrys + 1
    +    end 
    +  end 
    +end
    +
    +print("E")
    +
    +ipAddr = wifi.sta.getip()
    +if ( ( ipAddr == nil ) or  ( ipAddr == "0.0.0.0" ) ) then
    +  print("F")
    +  wifi.setmode( wifi.STATION )
    +  wifi.sta.config( SSID , APPWD)
    +  print("G")
    +  tmr.alarm( 0 , 2500 , 0 , checkWIFI )
    +else
    + launch()
    +end
    +
    + + +
    +BROKER = "172.16.2.15" 
    +BRPORT = 1883
    +BRUSER = ""
    +BRPWD  = "" 
    +CLIENTID = "ESP8266-" ..  node.chipid()
    +
    +SWITCH_PIN = 3
    +
    +SWITCH_ID = 1
    +
    +topics = {"IoT/Watchdog", "IoT/Switch" .. SWITCH_ID} 
    +TOPIC_WATCHDOG = 1
    +TOPIC_SWITCH = 2
    +
    +pub_sem = 0 
    +current_topic  = 1
    +topicsub_delay = 50 
    +id2 = 0
    +
    +switch_state = false
    +old_switch_state = true
    +
    +
    +function alarm()
    +  node.restart()
    +end
    +
    +
    +gpio.mode(SWITCH_PIN, gpio.OUTPUT)
    +gpio.write(SWITCH_PIN, gpio.LOW)
    +
    +m = mqtt.Client( CLIENTID, 120, BRUSER, BRPWD)
    +tmr.alarm(4, 60000, 1, alarm)
    +m:connect( BROKER , BRPORT, 0, function(conn)
    +     print("4")
    +     mqtt_sub()
    +end)
    +
    +
    +
    +
    +function mqtt_sub()
    +     if table.getn(topics) < current_topic then
    +          run_main_prog()
    +     else
    +          m:subscribe(topics[current_topic] , 0, function(conn)
    +          end)
    +          current_topic = current_topic + 1 
    +          tmr.alarm(5, topicsub_delay, 0, mqtt_sub )
    +     end
    +end
    +
    +
    +function publish_status()
    +   if pub_sem == 0 then 
    +     pub_sem = 1
    +     local uptime = tmr.time()
    +     local switch_state_pres = 0
    +     if (switch_state) then
    +        switch_state_pres = 1
    +     end
    +     local msg = "{"metadata":{"device":"WiFiSwitch" .. SWITCH_ID .. ""}, "data":{"uptime":" .. uptime .. ", "state":" .. switch_state_pres .. "}}"
    +     m:publish("IoT/Status/WiFiSwitch" .. SWITCH_ID, msg ,0,0, function(conn) 
    +        print("8: " .. id2 .. ", " .. switch_state_pres)
    +        pub_sem = 0 
    +        id2 = id2 +1 
    +     end)
    +   end  
    +end
    +
    +
    +
    +function run_main_prog()
    +     tmr.alarm(3, 1000, 1, publish_status )
    +     m:on("message", function(conn, topic, data)
    +        print(topic .. ":" )
    +        if (data ~= nil ) then
    +          print ( data )
    +          if (topic == topics[TOPIC_SWITCH] and data == "switch on") then
    +            switch_state = true
    +          elseif (topic == topics[TOPIC_SWITCH] and data == "switch off") then
    +            switch_state = false
    +          elseif (topic == topics[TOPIC_SWITCH] and data == "switch toggle") then
    +            switch_state = not switch_state
    +          elseif (topic == topics[TOPIC_WATCHDOG] and data == "WauWau!") then
    +            print("9")
    +            tmr.alarm(4, 60000, 1, alarm)
    +          end
    +
    +          if (switch_state ~= old_switch_state) then
    +            old_switch_state = switch_state
    +            if (switch_state) then
    +              gpio.write(SWITCH_PIN, gpio.LOW)
    +            else
    +              gpio.write(SWITCH_PIN, gpio.HIGH)
    +            end
    +          end
    +        end
    +      end )
    +end
    +
    + +IMG_3814 + +scan_006894 + + +Important note: this thing runs on mains power. Don't play with it unless you know exactly what you are doing!]]>
    + + 671 + 2015-09-14 22:40:00 + 2015-09-14 20:40:00 + open + open + first-esp8266-project-wifi-power-switch + publish + 0 + 0 + post + + 0 + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + +
    + + Something completely different: SNMP to MySQL + https://a385e5.wordpress.com/2015/10/12/something-completely-different-snmp-to-mysql/ + Mon, 12 Oct 2015 20:07:14 +0000 + whottgenroth + http://a385e-5.de/?p=695 + + + + + +[code language="csharp"] +namespace Snmp2Mysql +{ + + + class Program + { + static void Main(string[] args) + { + string dbConnStr = "SERVER=localhost;" + + "DATABASE=statsdb;" + + "UID=statsuser;" + + "PASSWORD=xxx;"; + DatabaseLink dbLink = new DatabaseLink(dbConnStr); + using (DataCollector dc = dbLink.DataCollector) + using (DeviceProvider dp = dbLink.DeviceProvider) + { + foreach (DeviceTuple dt in dp) + { + // Console.WriteLine("dt: {0}, {1}", dt.DeviceAddress, dt.Community); + + using (SnmpGetter snmpGetter = new SnmpGetter(dt.Community, dt.DeviceAddress)) + { + using (DeviceDataItemProvider ddip = dt.DeviceDataItemProvider) + { + foreach (DeviceDataItemTuple ddit in dt.DeviceDataItemProvider) + { + // Console.WriteLine(" ddit: {0}, {1}", ddit.Id, ddit.Oid); + snmpGetter.AddOid(ddit.Id, ddit.Oid); + } + } + + try + { + SnmpGetterResultProvider res = snmpGetter.Exec(); + foreach (SnmpGetterResult r in res) + { + // Console.WriteLine("{0} {1} {2} {3}: {4}", dt.Description, r.Index, r.Oid, r.Type, r.Value); + dc.add((int)r.Index, r.Value); + } + } + catch (SnmpGetterException) { + // Console.WriteLine ("{0}, no result: {1}", dt.Description, e.Message); + } + } + } + } + } + } +} +[/code] + +[code language="SQL"] +CREATE TABLE `device_t` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `address` varchar(45) NOT NULL, + `community` varchar(45) NOT NULL, + `period` int(11) NOT NULL, + `description` varchar(123) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `address_UNIQUE` (`address`) + +CREATE TABLE `dataitem_t` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `oid` varchar(128) NOT NULL, + `description` varchar(45) NOT NULL, + `handling` varchar(45) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `oid_UNIQUE` (`oid`), + UNIQUE KEY `description_UNIQUE` (`description`) + +CREATE TABLE `devicedataitem_t` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `device` int(11) NOT NULL, + `dataitem` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `devicedataitem_uk_idx` (`device`,`dataitem`), + KEY `device_fk_idx` (`device`), + KEY `dataitem_fk_idx` (`dataitem`), + CONSTRAINT `dataitem_fk` FOREIGN KEY (`dataitem`) REFERENCES `dataitem_t` (`id`), + CONSTRAINT `device_fk` FOREIGN KEY (`device`) REFERENCES `device_t` (`id`) + +CREATE TABLE `collecteddata_t` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `devicedataitem` int(11) NOT NULL, + `value` varchar(512) NOT NULL, + `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `devicedataitem_fk_idx` (`devicedataitem`), + CONSTRAINT `devicedataitem_fk` FOREIGN KEY (`devicedataitem`) REFERENCES `devicedataitem_t` (`id`) +[/code] + +And here are the sources: + +Snmp2Mysql + +I'm using GPL code from MySQL (the MySQL Connector for .NET), find it here http://dev.mysql.com/downloads/connector/net/ and the SNMP library from http://www.snmpsharpnet.com. + +Ah, evaluation of the data? Haven't thought about, maybe using some tricky SQL statement or an Excel pivot table. I'll come back about that. + +]]> + + 695 + 2015-10-12 22:07:14 + 2015-10-12 20:07:14 + open + open + something-completely-different-snmp-to-mysql + publish + 0 + 0 + post + + 0 + + + _publicize_pending + + + + _edit_last + + + + _syntaxhighlighter_encoded + + + + original_post_id + + + + _wp_old_slug + + + + + Why always SPI CS on pin 10? + https://a385e5.wordpress.com/2016/03/03/why-always-spi-cs-on-pin-10/ + Thu, 03 Mar 2016 21:06:14 +0000 + whottgenroth + http://a385e-5.de/?p=710 + + this great display. + +But why is TFT CS on pin 10? + +Bildschirmfoto 2016-03-03 um 21.48.49 + +Pin 10 is also the SPI CS for the Ethernet shield. Why not, for instance, pin 6: + +IMG_1211 + +Carefully lift pin 9 of the level shifter and connect it using a thin wire with pin 6 of the Arduino connector. + +And voila, both the display and the ethernet shield is working: + +IMG_1212]]> + + 710 + 2016-03-03 23:06:14 + 2016-03-03 21:06:14 + open + open + why-always-spi-cs-on-pin-10 + publish + 0 + 0 + post + + 0 + + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + + + + Integrated Thermometer and Timer + https://a385e5.wordpress.com/2016/09/09/integrated-thermometer-and-timer/ + Fri, 09 Sep 2016 15:07:37 +0000 + whottgenroth + http://a385e-5.de/?p=718 + + https://bitbucket.org/wollud1969/teathermotimer. + +img_0813 + +img_0814 + +img_0815 + +Schematics: 201609091558_0001 + +Calculation for measurement: 201609091558_0002 + +]]> + + 718 + 2016-09-09 17:07:37 + 2016-09-09 15:07:37 + open + open + integrated-thermometer-and-timer + publish + 0 + 0 + post + + 0 + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + + + + Integrated Tea Timer and Thermometer, Second Edition + https://a385e5.wordpress.com/2016/09/12/integrated-tea-timer-and-thermometer-second-edition/ + Mon, 12 Sep 2016 10:49:48 +0000 + whottgenroth + http://a385e-5.de/?p=729 + + SecondEdition. + +The schematic is more or less the same, just on digit display more and a reset push-button. + +img_0818 +img_0821]]> + + 729 + 2016-09-12 12:49:48 + 2016-09-12 10:49:48 + open + open + integrated-tea-timer-and-thermometer-second-edition + publish + 0 + 0 + post + + 0 + + + _publicize_pending + + + + _edit_last + + + + original_post_id + + + + _wp_old_slug + + + + + Three Phase Inverter + https://a385e5.wordpress.com/2016/10/14/three-phase-inverter/ + Fri, 14 Oct 2016 10:03:50 +0000 + whottgenroth + https://a385e5.wordpress.com/?p=739 + + img_0053 + +The signal shaping is done with four MSP430 controllers, three as PWMs to drive the bridge and one to coordinate and control the three PWMs. The PWM controller is decoupled from the IGBT driver (IR2184) using optic couplers. + +img_0054 + +The bridge is a three phase IGBT module is a 6MB120F-060 I got for a few euros at ebay. + +img_0055 + +To avoid high voltages in my setup I got a 24V async motor, also from ebay. + +img_0056 + +The PWMs generate the signal from a sine table generated using Excel. Those we got this signal: +inverter0_2016-09-23-4 + +The main task of the coordinator is the start the PWMs with a phase shift of 120° (digital line 1, 2 and 3): +2016-10-13_1 + +Currently the PWMs start with random polarity. The interesting signals are the digital lines 4, 5 and 6. + +Sometimes the motor runs: +2016-10-13_works + +But sometimes not: +2016-10-13_works_not + +The firmware is available on bitbucket, for the PWM controllers here and for the coordinator here. + +]]> + + 739 + 2016-10-14 10:03:50 + 2016-10-14 10:03:50 + open + open + three-phase-inverter + publish + 0 + 0 + post + + 0 + + + + _edit_last + + + + geo_public + + + + _publicize_job_id + + + + 19 + + + https://a385e5.wordpress.com/2016/12/19/three-phase-inverter-second-service/ + 192.0.80.57 + 2016-12-19 10:00:29 + 2016-12-19 10:00:29 + + 0 + pingback + 0 + 0 + + akismet_result + false + + + akismet_history + a:2:{s:4:"time";d:1482141630.1727149486541748046875;s:5:"event";s:9:"check-ham";} + + + akismet_history + a:2:{s:4:"time";d:1482146257.25055694580078125;s:5:"event";s:9:"check-ham";} + + + + + Something really useful: 433MHz Power-Outlet Control + https://a385e5.wordpress.com/2016/11/02/something-really-useful-433mhz-power-outlet-control/ + Wed, 02 Nov 2016 11:52:37 +0000 + whottgenroth + https://a385e5.wordpress.com/?p=763 + + +
  • Control the switches from different manufacturers with one remote.
  • +
  • Control them from really remote - from the office or from holiday.
  • +
  • Control them programmatically.
  • + +There are a couple of Arduino libraries out there which are working with this cheap 433MHz senders and receivers from China: + +  + +sender_receiverI tried several ones, not all a really working, but finally I stopped at https://github.com/sui77/rc-switch, which works really good. + + + + +First challenge now is to get the codes out of the remotes. For this purposes the rc-switch library provides an example sketch for the Arduino. I extended it a bit and got this: + +img_0101 +  +img_0105 +  + +Software for this thing can be found here https://gitlab.com/wolutator/433Receiver.git. + +This is how it works: + +img_0111 +  + +The second challenge is to send the codes out into air and let the power switches receive them. This is done with this thing: + +img_0100 + +It is a Arduino Ethernet Board with a PoE-adapter and the 433MHz sender directly attached to it. I glued it under a table in the living room. + +This thing received messages via MQTT and send them out via 433MHz. + +The software is here https://gitlab.com/wolutator/Mqtt433Gateway.git + +BTW: do not expect beautiful software, this has been made on Halloween evening and night when waiting for the kids to come home. +]]>
    + + 763 + 2016-11-02 11:52:37 + 2016-11-02 11:52:37 + open + open + something-really-useful-433mhz-power-outlet-control + publish + 0 + 0 + post + + 0 + + + + _edit_last + + + + geo_public + + + + _publicize_job_id + + +
    + + Three Phase Inverter, Second Service + https://a385e5.wordpress.com/2016/12/19/three-phase-inverter-second-service/ + Mon, 19 Dec 2016 10:00:25 +0000 + whottgenroth + https://a385e5.wordpress.com/?p=808 + + https://a385e5.wordpress.com/2016/10/14/three-phase-inverter/. In the first try I used four MSP430 microcontroller, one for the PWM of each phase and one to coordinate the phase shift of the three phases. + +In this experiment I put everything on one STM32 microcontroller. Here I used the DMA feature to feed data into the PWM counter and I calculated the sine values at start-up time on the microcontroller. Additionally I put in the driver for a CAN interface, however, it is not yet supported in the firmware. + +img_0140 + +From top to bottom you see the CAN driver, the STM32 board, opto coupler to separate logic and power part and then from right to left in the bottom half the low-side/high-side MOSFET drivers and the MOSFETs. + +img_0144 + +The power supply consists of a traditional transformer and (top right) the rectifier and condensers for the power part, together with the 12V regulator for the drivers and (top left) the regulators for 3.3V and 5V for the logic part. + +img_0146 + +The motor is the same as in the earlier experiment - I don't have too much of them. And everything is put onto one board: + +  + +  +img_0143 + +(Some space reserved for a HMI unit to be connected via CAN ...)]]> + + 808 + 2016-12-19 10:00:25 + 2016-12-19 10:00:25 + open + open + three-phase-inverter-second-service + publish + 0 + 0 + post + + 0 + + + + _rest_api_published + + + + _rest_api_client_id + + + + _publicize_job_id + + + + _edit_last + + + + geo_public + + + + + SPI Slave Select Multiplication for the Raspberry Pi + https://a385e5.wordpress.com/?p=837 + Mon, 30 Nov -0001 00:00:00 +0000 + whottgenroth + https://a385e5.wordpress.com/?p=837 + + + +IMG_0594 + + ]]> + + 837 + 2017-07-04 11:08:51 + 0000-00-00 00:00:00 + open + open + + draft + 0 + 0 + post + + 0 + + + + Configuration-Webserver for ESP8266 Projects + https://a385e5.wordpress.com/2018/01/26/configuration-webserver-for-esp8266-projects/ + Fri, 26 Jan 2018 09:08:25 +0000 + whottgenroth + https://a385e5.wordpress.com/?p=843 + + + + + + +[code language="python" title="configGen.py"] +#!/usr/bin/python + +from Cheetah.Template import Template + +configItems = [ + {"label":"_", "key":"magic", "type":"I", "default": ""}, + {"label":"Wifi SSID", "key":"wifiSsid", "type":"C", "length":32, "default":"test"}, + {"label":"Wifi Key", "key":"wifiKey", "type":"C", "length":64, "default":"geheim"}, + {"label":"MQTT Broker", "key":"mqttBroker", "type":"C", "length":64, "default":"broker.hottis.de"}, + {"label":"MQTT Username", "key":"mqttUser", "type":"C", "length":32, "default":"esp1"}, + {"label":"MQTT Password", "key":"mqttPass", "type":"C", "length":32, "default":"geheim"}, + {"label":"MQTT ClientId", "key":"mqttClientId", "type":"C", "length":32, "default":"changeThis"}, + {"label":"MQTT Topic", "key":"mqttTopic", "type":"C", "length":64, "default":"IoT/espThermometer2/location/measurement"}, + {"label":"MQTT Port", "key":"mqttPort", "type":"I", "default":8883}, + {"label":"Measure Period", "key":"measurePeriod", "type":"I", "default":300} +] + +h_file = Template(file="configuration_h.tmpl", searchList=[{"configItems":configItems}]) +open('configuration.h','w').write(str(h_file)) +c_file = Template(file="configuration_c.tmpl", searchList=[{"configItems":configItems}]) +open('configuration.cpp','w').write(str(c_file)) +[/code] + + +The two templates are: + +[code language="C" title="configuration_h.tmpl"] +typedef struct { +#for $configItem in $configItems +#if $configItem.type == 'C' + char ${configItem.key}[$configItem.length]; +#else if $configItem.type == 'I' + uint32_t $configItem.key; +#end if +#end for +} tConfigBlock; + +extern const uint32_t MAGIC; +extern tConfigBlock configBlock; + +void configServeIndex(); +void configServeGetConfiguration(); +void showConfiguration(); +[/code] + +And: + +[code language="C" title="configuration_c.tmpl"] +#raw +#include <Arduino.h> + +#include <ESP8266WiFi.h> +#include <ESP8266WebServer.h> +#include <EEPROM.h> + +#include "defines.h" +#include "configuration.h" +#end raw + + +tConfigBlock configBlock; +const uint32_t MAGIC = 0xC0DE0001; +extern ESP8266WebServer webServer; + +bool configSaved = false; + +void configServeIndex() { + bool configValid = (configBlock.magic == MAGIC); + + if (! configValid) { + #for $configItem in $configItems + #if $configItem.label != "_" + #if $configItem.type == "C" + strcpy(configBlock.$configItem.key, "$configItem.default"); + #else if $configItem.type == "I" + configBlock.$configItem.key = $configItem.default; + #end if + #end if + #end for + } + + String buffer = + "<!doctype html" + "<html lang=\"en\">" + " <head>" + " <title>ESP8266 Thermometer Configuration Page</title>" + " </head>" + " <body>" + " <h1>ESP8266 Configuration Page</h1>"; + + if (configSaved) { + configSaved = false; + buffer += "<h2>Configuration saved</h2>"; + } + + buffer += + " <form action=\"/config\" method=\"GET\">" + " <table>" + #for $configItem in $configItems + #if $configItem.label != "_" + " <tr>" + " <td>" + " <label for\"$configItem.key\">$configItem.label</label>" + " </td><td>" + " <input type=\"text\" name=\"$configItem.key\" id=\"$configItem.key\" "; + + #if $configItem.type == "C" + buffer += " size=\"$configItem.length\" "; + buffer += " value=\""; + buffer += configBlock.$configItem.key; + buffer += "\""; + #else if $configItem.type == "I" + buffer += " value=\""; + buffer += configBlock.$configItem.key; + buffer += "\""; + #end if + + buffer += + " />" + " </td>" + " </tr>" + #end if + #end for + " <tr>" + " <td colspan=\"2\">" + " <button type=\"submit\">Save</button>" + " </td>" + " </tr>" + " </table>" + " </form>" + " </body>" + "</html>"; + + webServer.send(200, "text/html", buffer); + + +#ifdef DEBUG + Serial.println("indexHtml request served"); +#endif +} + +void configServeGetConfiguration() { + String arg; + + #for $configItem in $configItems + #if $configItem.label != "_" + arg = webServer.arg("$configItem.key"); + #if $configItem.type == "C" + strcpy(configBlock.$configItem.key, arg.c_str()); + #else if $configItem.type == "I" + configBlock.$configItem.key = atoi(arg.c_str()); + #end if + #end if + #end for + + configBlock.magic = MAGIC; + + showConfiguration(); + + EEPROM.begin(512); + EEPROM.put(EEPROM_ADDR, configBlock); + EEPROM.commit(); + + Serial.println("EEPROM saved"); + + configSaved = true; + webServer.sendHeader("Location", String("/"), true); + webServer.send(302, "text/plain", ""); + //webServer.send(200, "text/html", "configuration saved"); +} + +void showConfiguration() { + Serial.println("Configuration is"); + + #for $configItem in $configItems + Serial.print("$configItem.key = "); + Serial.println(configBlock.$configItem.key); + + #end for + + Serial.println("---"); +} +[/code] + +Besides these generated files I also needed a framework to distinguish between "configuration mode" and "production mode" and in configuration mode to start the WiFi accesspoint. + +Since I'm programming the ESP8266 in an Eclipse-based Arduino-environment, this is all done in the setup() and loop() function: + +[code language="C"] +void setup() { + startTime = millis(); +#ifdef DEBUG + Serial.begin(115200); + Serial.println("Starting ..."); +#endif + + pinMode(CONFIG_SWITCH, INPUT_PULLUP); + pinMode(LED_PIN, OUTPUT); + + EEPROM.begin(512); + EEPROM.get(EEPROM_ADDR, configBlock); + + Serial.print("Magic: "); + Serial.println(configBlock.magic); + + configMode = ((LOW == digitalRead(CONFIG_SWITCH)) || (configBlock.magic != MAGIC)); + + if (configMode) { +#ifdef DEBUG + Serial.println("Configuration mode"); +#endif + digitalWrite(LED_PIN, LOW); + setupConfiguration(); + } else { +#ifdef DEBUG + Serial.println("Production mode"); + Serial.println(); + Serial.println(); + showConfiguration(); +#endif + + digitalWrite(LED_PIN, HIGH); + setupProduction(); + } + +#ifdef DEBUG + Serial.println("Started."); +#endif +} + +void loop() { + if (configMode) { + loopConfiguration(); + } else { + loopProduction(); + } +} + +void setupConfiguration() { + WiFi.mode(WIFI_AP); + WiFi.softAP(CONFIG_SSID); +#ifdef DEBUG + Serial.println("AP started"); +#endif + + webServer.on("/", configServeIndex); + webServer.on("/config", configServeGetConfiguration); + webServer.onNotFound(configServeNotFound); + webServer.begin(); +#ifdef DEBUG + Serial.println("Webserver started"); +#endif +} + +void loopConfiguration() { + webServer.handleClient(); +} +[/code] + + +This code can be also found embedded into two of my projects. Find them at https://gitlab.com/wolutator/EspThermometer2 and https://gitlab.com/wolutator/TouchSwitch. +]]> + + 843 + 2018-01-26 09:08:25 + 2018-01-26 09:08:25 + open + open + configuration-webserver-for-esp8266-projects + publish + 0 + 0 + post + + 0 + + + + + + _edit_last + + + + geo_public + + + + _publicize_job_id + + + + timeline_notification + + + + + Home Automation Hub + https://a385e5.wordpress.com/2018/02/22/home-automation-hub/ + Thu, 22 Feb 2018 17:50:28 +0000 + whottgenroth + https://a385e5.wordpress.com/?p=871 + + + +IMG_0195 + +A Raspberry Pi runs Homegear and homekit2mqtt. It is equipped with two 866MHz radios for Homematic and MAX!. + +Additionally an MQTT broker and the homegrown control software (https://gitlab.com/wolutator/dispatcher_ng), which communicates with Homegear, homekit2mqtt, the MQTT433MHz bridge (see below) and other homegrown web clients via MQTT, resists on it. + +IMG_0307 + +There is also a DIY MQTT to 433MHz bridge to control Intertechno and other 433MHz plugs (https://gitlab.com/wolutator/Mqtt433Gateway). + +  + +  + +  + +  + +IMG_0308 + +An finally a Philips Hue Bridge powered using a PoE adaptor for Philips and IKEA Tradfri bulbs, paired to Homegear.]]> + + 871 + 2018-02-22 17:50:28 + 2018-02-22 17:50:28 + open + open + home-automation-hub + publish + 0 + 0 + post + + 0 + + + + timeline_notification + + + + _rest_api_published + + + + _rest_api_client_id + + + + _publicize_job_id + + + + + My way of STM32 development + https://a385e5.wordpress.com/?p=886 + Mon, 30 Nov -0001 00:00:00 +0000 + whottgenroth + https://a385e5.wordpress.com/?p=886 + + + + 886 + 2018-03-14 13:43:18 + 0000-00-00 00:00:00 + open + open + + draft + 0 + 0 + post + + 0 + + + _edit_last + + + + + PubKeys + https://a385e5.wordpress.com/pubkeys/ + Wed, 21 Mar 2018 12:13:52 +0000 + whottgenroth + https://a385e5.wordpress.com/?page_id=887 + + + + 887 + 2018-03-21 12:13:52 + 2018-03-21 12:13:52 + closed + closed + pubkeys + publish + 0 + 0 + page + + 0 + + _wp_page_template + + + + _publicize_pending + + + + _rest_api_published + + + + _rest_api_client_id + + + + _edit_last + + + + geo_public + + + + + + <link>https://a385e5.wordpress.com/?p=896</link> + <pubDate>Mon, 30 Nov -0001 00:00:00 +0000</pubDate> + <dc:creator>whottgenroth</dc:creator> + <guid isPermaLink="false">https://a385e5.wordpress.com/?p=896</guid> + <description/> + <content:encoded><![CDATA[<h1>Signing Git commits</h1> +<h2>Motivation and Introduction</h2> +In a company internal environment you can be quite sure that the one who is mentioned in a commit is actually the one who issued that commit. + +That was me: + +<img class="alignnone size-full wp-image-897" src="https://a385e5.files.wordpress.com/2018/03/git-signing-1.png" alt="git-signing-1.PNG" width="829" height="93" /> + +However, it is so easy to fake the committer's name. This was me too: + +<img class="alignnone size-full wp-image-898" src="https://a385e5.files.wordpress.com/2018/03/git-signing-2.png" alt="git-signing-2.PNG" width="820" height="92" /> + +Of course no one would do something like this in a professional environment. However, under particular circumstances code signing might become required. + +Using Git and Gitlab this is rather easy (brief overview, details follow): +<ul> + <li>Preparation +<ol> + <li>Get the gnupg software.</li> + <li>Generate yourself a public/private key tuple.</li> + <li>Upload your **public** key to Gitlab and to an internal or public keyserver.</li> + <li>Keep your **private** key secret, however, make sure you have a backup of it. But also keep the backup secret.</li> + <li>Configure your local Git installation to sign your commits.</li> +</ol> +</li> + <li>Actual signing of a commit +<ol> + <li>If you configured your Git installation correctly: just commit. You will be asked for the passphrase of your private key, however, Git is taking care for raising that question, you don't have to remember yourself.</li> +</ol> +</li> +</ul> +Afterwards a signed commit looks like this: + +<img class="alignnone size-full wp-image-899" src="https://a385e5.files.wordpress.com/2018/03/git-signing-3.png" alt="git-signing-3.PNG" width="820" height="75" /> + +Now, you can be sure that this commit has been issued by me. Gitlab is verifying this using the public key I've uploaded and everyone could verify on her own by downloading my public key from the keyserver and using the ''verify-commit'' command. +<h2>Details</h2> +<h3>Required software</h3> +Get the Windows installation package of the gnupg software here <a href="https://www.gpg4win.de/">https://www.gpg4win.de/</a>. The current version at the time of writing is 3.0.3. + +When you are on Linux or Mac, install gpg in the platform specific way. + +Just install it. +<h3>Generate a public/private key tuple</h3> +Once <code>gpg</code> is installed you can generate a keypair using + +<code>gpg --generate-key</code> + +]]></content:encoded> + <excerpt:encoded><![CDATA[]]></excerpt:encoded> + <wp:post_id>896</wp:post_id> + <wp:post_date>2018-03-26 16:34:06</wp:post_date> + <wp:post_date_gmt>0000-00-00 00:00:00</wp:post_date_gmt> + <wp:comment_status>open</wp:comment_status> + <wp:ping_status>open</wp:ping_status> + <wp:post_name/> + <wp:status>draft</wp:status> + <wp:post_parent>0</wp:post_parent> + <wp:menu_order>0</wp:menu_order> + <wp:post_type>post</wp:post_type> + <wp:post_password/> + <wp:is_sticky>0</wp:is_sticky> + <category domain="category" nicename="uncategorized"><![CDATA[Uncategorized]]></category> +</item> +<item> + <title>Yet Another Debouncing Method + https://a385e5.wordpress.com/2018/04/30/yet-another-debouncing-method/ + Mon, 30 Apr 2018 09:27:52 +0000 + whottgenroth + https://a385e5.wordpress.com/?p=900 + + + + + +20180430110848869_0001.jpg + +(The double-lined states are action-states which send out the related information.) + +At least for me, this approach is working very reliable so far, I'm quite happy with it. + +[code language="C"] +enum tPressedState { psHIGH, psLOW, psACCEPTED_LOW, psLONG_START, psLONG_CONT, psLONG_CONT_SEND, psLONG_END, psSHORT, psINVALID }; + +typedef struct { + uint8_t index; + uint8_t buttonPin; + tPressedState pressedState; + tPressedState oldPressedState; + uint32_t lastStateChange; +} tButton; + +tButton buttons[] = { + { 1, SWITCH_1, psHIGH, psINVALID, 0 }, + { 2, SWITCH_2, psHIGH, psINVALID, 0 }, + { 3, SWITCH_3, psHIGH, psINVALID, 0 }, + { 0, 0, psINVALID, psINVALID, 0 } // END MARKER +}; + +static void buttonHandler(tButton *button) { + uint32_t currentMicros = micros(); + uint8_t buttonState = digitalRead(button->buttonPin); + +#ifdef DEBUG + if (button->oldPressedState != button->pressedState) { + Serial.print("Index "); + Serial.print(button->index); + Serial.print(", state changed from "); + Serial.print(button->oldPressedState); + Serial.print(" to "); + Serial.print(button->pressedState); + Serial.println(); + button->oldPressedState = button->pressedState; + } +#endif + + switch (button->pressedState) { + case psHIGH: + if (buttonState == LOW) { + button->pressedState = psLOW; + button->lastStateChange = currentMicros; + } + break; + case psLOW: + if (buttonState == HIGH) { + button->pressedState = psHIGH; + button->lastStateChange = currentMicros; + } else { + if (currentMicros > (button->lastStateChange + configBlock.debounce)) { + button->pressedState = psACCEPTED_LOW; + button->lastStateChange = currentMicros; + } + } + break; + case psACCEPTED_LOW: + if (buttonState == HIGH) { + button->pressedState = psSHORT; + button->lastStateChange = currentMicros; + } + if (currentMicros > (button->lastStateChange + (configBlock.longPress * 1000))) { + button->pressedState = psLONG_START; + button->lastStateChange = currentMicros; + } + break; + case psSHORT: + sendMsg(button->index, "PRESS_SHORT"); + button->pressedState = psHIGH; + button->lastStateChange = currentMicros; + break; + case psLONG_START: + sendMsg(button->index, "PRESS_LONG_START"); + button->pressedState = psLONG_CONT; + button->lastStateChange = currentMicros; + break; + case psLONG_CONT: + if (buttonState == HIGH) { + button->pressedState = psLONG_END; + button->lastStateChange = currentMicros; + } + if (currentMicros > (button->lastStateChange + (configBlock.longPressRepeat * 1000))) { + button->pressedState = psLONG_CONT_SEND; + button->lastStateChange = currentMicros; + } + break; + case psLONG_CONT_SEND: + sendMsg(button->index, "PRESS_LONG_CONT"); + button->pressedState = psLONG_CONT; + button->lastStateChange = currentMicros; + break; + case psLONG_END: + sendMsg(button->index, "PRESS_LONG_END"); + button->pressedState = psHIGH; + button->lastStateChange = currentMicros; + break; + default: + button->pressedState = psHIGH; + button->lastStateChange = currentMicros; + } +} +[/code] + +Find it embedded in the code of a small ESP8266-based switch thing I'm using in my home automation setup (home grown control code (https://gitlab.com/wolutator/dispatcher_ng), homegear (https://homegear.eu/) for device integration and openHAB (https://www.openhab.org/) as user interface) here: https://gitlab.com/wolutator/MySwitch. + +]]> + + 900 + 2018-04-30 09:27:52 + 2018-04-30 09:27:52 + open + open + yet-another-debouncing-method + publish + 0 + 0 + post + + 0 + + + + + _rest_api_published + + + + _rest_api_client_id + + + + _publicize_job_id + + + + timeline_notification + + + +
    +