{"@attributes":{"version":"2.0"},"channel":{"title":"zoltanp's blog","description":"Various stuff which I considered worth publishing.","link":"https:\/\/zoltanp.github.io","item":[{"title":"Announcing KTechLab 0.51.0","description":"<p>I\u2019m happy to announce KTechLab release version 0.51.0.\nKTechLab is an IDE for microcontrollers and electronics.\nThis new release contains the following changes:<\/p>\n<ul>\n  <li>updated and improved translations<\/li>\n  <li>the Serial Port component, for better compatibility, uses Qt\u2019s QSerialPort, instead of operating-system specific library calls<\/li>\n  <li>experimental support for Windows; it requires MSVC 2019 compiler<\/li>\n  <li>various stability fixes<\/li>\n  <li>modernisation of the codebase, porting away from some deprecated APIs<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/download.kde.org\/unstable\/ktechlab\/ktechlab-0.51.0.tar.xz.mirrorlist\">The release tarball of version 0.51.0 can be downloaded from KDE servers<\/a>.\nIts checksums are:<\/p>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>SHA256Sum: 046b9ce1f2c2a93e1da734a416674a5bb5da3203ac773d49ed693b8492f6d212\nSHA1Sum: 7729b67050caee5b65fe4dd1dfbfce213cea44ac\nMD5Sum: 2853c6867535995c1ead598e98fce6e3\n<\/code><\/pre><\/div><\/div>\n\n<h2 id=\"useful-links-related-to-ktechlab\">Useful links related to KTechLab<\/h2>\n\n<p>KTechLab has a mailing list at KDE called <code class=\"language-plaintext highlighter-rouge\">ktechlab-devel<\/code>:\n<a href=\"https:\/\/mail.kde.org\/mailman\/listinfo\/ktechlab-devel\">https:\/\/mail.kde.org\/mailman\/listinfo\/ktechlab-devel<\/a><\/p>\n\n<p>On IRC, developers are mostly reachable on <code class=\"language-plaintext highlighter-rouge\">freenode.net<\/code>, on <code class=\"language-plaintext highlighter-rouge\">#ktechlab<\/code> channel.<\/p>\n\n<p>The source code of KTechLab is available in KDE Git, at\n<a href=\"https:\/\/invent.kde.org\/sdk\/ktechlab\">https:\/\/invent.kde.org\/sdk\/ktechlab<\/a><\/p>\n\n<p>Instructions for building and running KTechLab are available in the README file from the source code; online version of that file is available\nat\n<a href=\"https:\/\/invent.kde.org\/sdk\/ktechlab\/-\/blob\/master\/README\">https:\/\/invent.kde.org\/sdk\/ktechlab\/-\/blob\/master\/README<\/a>\n ; The very short instructions are: run <code class=\"language-plaintext highlighter-rouge\">sh build-simple.sh<\/code> and then <code class=\"language-plaintext highlighter-rouge\">sh run-simple.sh<\/code>.<\/p>\n\n<p>The notes from joining KDE:\n<a href=\"https:\/\/community.kde.org\/Incubator\/Projects\/KTechLab\">https:\/\/community.kde.org\/Incubator\/Projects\/KTechLab<\/a><\/p>\n\n<p>KTechLab bugs at KDE bugtracker:\n<a href=\"https:\/\/bugs.kde.org\/buglist.cgi?quicksearch=ktechlab\">https:\/\/bugs.kde.org\/buglist.cgi?quicksearch=ktechlab<\/a><\/p>\n","pubDate":"Tue, 28 Mar 2023 08:15:00 +0000","link":"https:\/\/zoltanp.github.io\/2023\/03\/ktechlab-0-51-0.html","guid":"https:\/\/zoltanp.github.io\/2023\/03\/ktechlab-0-51-0.html"},{"title":"Announcing KTechLab 0.50.0","description":"<p>I\u2019m happy to announce KTechLab release version 0.50.0.\nKTechLab is an IDE for microcontrollers and electronics.\nIn this new release every user-visible functionality is\nthe same as in previous releases,\nhowever, the codebase of KTechLab has been updated,\nso now it is a KF5\/Qt5 application\nand it does not depend anymore on KDELibs4Support libraries.<\/p>\n\n<p>This release should compile and run on systems where KDELibs4Support\nlibraries are not available.<\/p>\n\n<p>In its current state KTechLab\u2019s codebase is ready for fixes and enhancements,\nas it only depends on modern libraries like KDE Frameworks 5 (KF5) and Qt5.\nAs a side note, KF6 and Qt6 have been announced,\nand the first release of Qt6 has been scheduled <a href=\"https:\/\/wiki.qt.io\/Qt_6.0_Release\">to the end of 2020<\/a>.<\/p>\n\n<p><a href=\"https:\/\/download.kde.org\/unstable\/ktechlab\/ktechlab-0.50.0.tar.xz.mirrorlist\">The release tarball of version 0.50.0 can be downloaded from KDE servers<\/a>.\nIts checksums are:<\/p>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>SHA256Sum: cf0fe078f8afad7f3237a4e052dd2cace185d390a02f15ebe60cccabcbe8fdfe\nSHA1Sum: ff80879ae2e36aa795b469dca50a2b565f3ab52b\nMD5Sum: 5efe09b276fad08d74ead245a597797d\n<\/code><\/pre><\/div><\/div>\n\n<h2 id=\"useful-links-related-to-ktechlab\">Useful links related to KTechLab<\/h2>\n\n<p>KTechLab has a mailing list at KDE called <code class=\"language-plaintext highlighter-rouge\">ktechlab-devel<\/code>:\n<a href=\"https:\/\/mail.kde.org\/mailman\/listinfo\/ktechlab-devel\">https:\/\/mail.kde.org\/mailman\/listinfo\/ktechlab-devel<\/a><\/p>\n\n<p>On IRC, developers are mostly reachable on <code class=\"language-plaintext highlighter-rouge\">freenode.net<\/code>, on <code class=\"language-plaintext highlighter-rouge\">#ktechlab<\/code> channel.<\/p>\n\n<p>The source code of KTechLab is available in KDE Git, at \n<a href=\"https:\/\/invent.kde.org\/sdk\/ktechlab\">https:\/\/invent.kde.org\/sdk\/ktechlab<\/a><\/p>\n\n<p>Instructions for building and running KTechLab are available in the README file from the source code; online version of that file is available \nat \n<a href=\"https:\/\/invent.kde.org\/sdk\/ktechlab\/-\/blob\/master\/README\">https:\/\/invent.kde.org\/sdk\/ktechlab\/-\/blob\/master\/README<\/a>\n ; The very short instructions are: run <code class=\"language-plaintext highlighter-rouge\">sh build-simple.sh<\/code> and then <code class=\"language-plaintext highlighter-rouge\">sh run-simple.sh<\/code>.<\/p>\n\n<p>The notes from joining KDE: \n<a href=\"https:\/\/community.kde.org\/Incubator\/Projects\/KTechLab\">https:\/\/community.kde.org\/Incubator\/Projects\/KTechLab<\/a><\/p>\n\n<p>KTechLab bugs at KDE bugtracker: \n<a href=\"https:\/\/bugs.kde.org\/buglist.cgi?quicksearch=ktechlab\">https:\/\/bugs.kde.org\/buglist.cgi?quicksearch=ktechlab<\/a><\/p>\n","pubDate":"Mon, 21 Sep 2020 00:15:00 +0000","link":"https:\/\/zoltanp.github.io\/2020\/09\/ktechlab-0-50-0.html","guid":"https:\/\/zoltanp.github.io\/2020\/09\/ktechlab-0-50-0.html"},{"title":"KTechLab git master doesn't depend on deprecated Qt5\/KF5 API anymore","description":"<p><a href=\"https:\/\/invent.kde.org\/sdk\/ktechlab\">KTechLab git master<\/a> doesn\u2019t depend anymore on deprecated Qt5\/KF5 APIs.\nThank you for everybody who made this possible!<\/p>\n\n<p>Using only up-to-date APIs\nshould help with long-term maintenance of KTechLab and probably it helps distributors of KTechLab, too.<\/p>\n","pubDate":"Sat, 19 Sep 2020 14:00:00 +0000","link":"https:\/\/zoltanp.github.io\/2020\/09\/ktechlab-qt5-no-deprecated.html","guid":"https:\/\/zoltanp.github.io\/2020\/09\/ktechlab-qt5-no-deprecated.html"},{"title":"Videos about using KTechLab, in Portuguese","description":"<p>Here are videos in Portuguese showing how to use KTechlab, on YouTube:<\/p>\n\n<p><a href=\"https:\/\/www.youtube.com\/playlist?list=PLoDMzhU2aLA6FIggu3axq4JKqv2-99qnO\">https:\/\/www.youtube.com\/playlist?list=PLoDMzhU2aLA6FIggu3axq4JKqv2-99qnO<\/a><\/p>\n\n<p>Courtesy of <a href=\"https:\/\/www.youtube.com\/channel\/UCaDBYybpCUFsSaCq7H8mTDA\">Valmir Massaro<\/a>.<\/p>\n","pubDate":"Fri, 11 Sep 2020 12:00:00 +0000","link":"https:\/\/zoltanp.github.io\/2020\/09\/ktechlab-videos.html","guid":"https:\/\/zoltanp.github.io\/2020\/09\/ktechlab-videos.html"},{"title":"Announcing KTechLab 0.40.1","description":"<p>I\u2019m happy to announce KTechLab release version 0.40.1.\nKTechLab is an IDE for microcontrollers and electronics.\nIn this new release every user-visible functionality is\nthe same as in previous releases,\nhowever, the codebase of KTechLab has been updated,\nso now it is a pure KDELibs4 and Qt4 application\nand it does not depend anymore on kde3support and qt3support libraries.<\/p>\n\n<p>This release should compile and run on systems where kde3support or qt3support\nlibraries are not available.<\/p>\n\n<p>In its current state KTechLab\u2019s codebase is ready to be ported\nto KDE Frameworks 5 (KF5) and Qt5.\nSo a future release of KTechLab could only depend on modern libraries\nlike KF5 and Qt5.<\/p>\n\n<p><a href=\"https:\/\/download.kde.org\/unstable\/ktechlab\/ktechlab-0.40.1.tar.xz.mirrorlist\">The release tarball of version 0.40.1 can be downloaded from KDE servers<\/a>.\nIts checksums are:<\/p>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>SHA256Sum: e98570db0cf818a154757eca3f62e8283df55fd49ba87b2cdce8080e9aa5f9fd\nSHA1Sum: f6d414f2bc974460d03442871f560b0b86a8b24a\nMD5Sum: 9bf7e08a46822788ba84abe332624252\n<\/code><\/pre><\/div><\/div>\n\n<h2 id=\"useful-links-related-to-ktechlab\">Useful links related to KTechLab<\/h2>\n\n<p>KTechLab has a mailing list at KDE called <code class=\"language-plaintext highlighter-rouge\">ktechlab-devel<\/code>:\n<a href=\"https:\/\/mail.kde.org\/mailman\/listinfo\/ktechlab-devel\">https:\/\/mail.kde.org\/mailman\/listinfo\/ktechlab-devel<\/a><\/p>\n\n<p>On IRC, developers are mostly reachable on <code class=\"language-plaintext highlighter-rouge\">freenode.net<\/code>, on <code class=\"language-plaintext highlighter-rouge\">#ktechlab<\/code> channel.<\/p>\n\n<p>The source code of KTechLab is available in KDE Git, at \n<a href=\"https:\/\/cgit.kde.org\/ktechlab.git\/\">https:\/\/cgit.kde.org\/ktechlab.git\/<\/a><\/p>\n\n<p>Instructions for building and running KTechLab are available in the README file from the source code; online version of that file is available \nat \n<a href=\"https:\/\/cgit.kde.org\/ktechlab.git\/tree\/README\">https:\/\/cgit.kde.org\/ktechlab.git\/tree\/README<\/a>\n ; The very short instructions are: run <code class=\"language-plaintext highlighter-rouge\">sh simple-setup.sh<\/code> and then <code class=\"language-plaintext highlighter-rouge\">sh simple-launch.sh<\/code>.<\/p>\n\n<p>The notes from joining KDE: \n<a href=\"https:\/\/community.kde.org\/Incubator\/Projects\/KTechLab\">https:\/\/community.kde.org\/Incubator\/Projects\/KTechLab<\/a><\/p>\n\n<p>KTechLab bugs at KDE bugtracker: \n<a href=\"https:\/\/bugs.kde.org\/buglist.cgi?quicksearch=ktechlab\">https:\/\/bugs.kde.org\/buglist.cgi?quicksearch=ktechlab<\/a><\/p>\n\n","pubDate":"Wed, 30 Jan 2019 10:00:00 +0000","link":"https:\/\/zoltanp.github.io\/2019\/01\/ktechlab-0-40-1.html","guid":"https:\/\/zoltanp.github.io\/2019\/01\/ktechlab-0-40-1.html"},{"title":"Announcing KTechLab 0.40.0","description":"<p>KTechLab, the IDE for microcontrollers and electronics,\nhas reached a new milestone:\nits latest release, 0.40.0, does not depend on KDE3 and Qt3, but on KDE4 and Qt4.\nThis means that KTechLab can be compiled and run on current\noperating systems.<\/p>\n\n<p>In the new, KDE4 and Qt4 based release, practically all features of the\nprevious version are kept.\nCircuits, including PIC microcontrollers can be simulated,\nthe programs running on PICs can be edited in C, ASM format, or\ngraphically, by using Flowcode,\nand these programs can be easily prepared for programming real PICs.\nThe only feature which has been removed is\nDCOP integration, which is not available in KDE4, and\nshould be replaced with D-Bus integration.<\/p>\n\n<p><a href=\"http:\/\/download.kde.org\/unstable\/ktechlab\/ktechlab-0.40.0.tar.xz.mirrorlist\">The release tarball can be downloaded from KDE FTP<\/a>.\nIts checksums are:<\/p>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>SHA256Sum: c4ba3463284a1f9d0803b47d5ccb912fe82f7437276e92b7765c6ea95fb7b7cd\nSHA1Sum: ae046ecee07f802e4be69ad8392cb31a993a9c8e\nMD5Sum: 258d15eb02a2630094510928c845b3bf\n<\/code><\/pre><\/div><\/div>\n\n<h2 id=\"screenshots-of-this-release\">Screenshots of this release<\/h2>\n\n<p>Below I\u2019m presenting screenshots of KTechLab\u2019s\nlatest release.<\/p>\n\n<p>Creating new file and selecting its type:<\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017.11.05-1-new-file.png\" alt=\"Create new file\" \/><\/p>\n\n<p>FlowCode is a graphical editor for programs.\nPractically a flowchart can be compiled to a program\nrunning on a PIC microcontroller.<\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017.11.05-2-flowcode.png\" alt=\"Editing flowcode\" \/><\/p>\n\n<p>Circuits are simulated electronic circuits.\nSome components are interactive, like switches,\nso the user of KTechLab can change their state in real-time.<\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017.11.05-3-circuit.png\" alt=\"Circuit\" \/><\/p>\n\n<p>C and ASM files are source code which can be compiled\nand uploaded to a simulated PIC micrcocontroller or\nto a real PIC microcontroller.<\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017.11.05-4-c-code.png\" alt=\"C Code\" \/><\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017.11.05-5-asm-code.png\" alt=\"Assembler code\" \/><\/p>\n\n<p>For details about running and debugging programs for\nPICs, I recommend reading my previous post on the topic:\n<a href=\"https:\/\/zoltanp.github.io\/2017\/09\/2017-09-05-ktechlab-pic-prog-sim.md\">KTechLab: Simulating PIC microcontroller and a program running on it<\/a>\n.<\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-09-01-ktechlab-13-debug.png\" alt=\"Debugging the program runnig on the PIC\" \/><\/p>\n\n<h2 id=\"useful-links-related-to-ktechlab\">Useful links related to KTechLab<\/h2>\n\n<p>KTechLab has a mailing list at KDE called <code class=\"language-plaintext highlighter-rouge\">ktechlab-devel<\/code>:\n<a href=\"https:\/\/mail.kde.org\/mailman\/listinfo\/ktechlab-devel\">https:\/\/mail.kde.org\/mailman\/listinfo\/ktechlab-devel<\/a><\/p>\n\n<p>On IRC, developers are mostly reachable on <code class=\"language-plaintext highlighter-rouge\">freenode.net<\/code>, on <code class=\"language-plaintext highlighter-rouge\">#ktechlab<\/code> channel.<\/p>\n\n<p>The source code of KTechLab is available in KDE Git, at \n<a href=\"https:\/\/cgit.kde.org\/ktechlab.git\/\">https:\/\/cgit.kde.org\/ktechlab.git\/<\/a>\n (note: I\u2019m aware that this link is not a \u201cstable\u201d one, but for now I couldn\u2019t figure out the \u201cstable\u201d link).<\/p>\n\n<p>Instructions for building and running KTechLab are available in the README file from the source code; online version of that file is available \nat \n<a href=\"https:\/\/cgit.kde.org\/ktechlab.git\/tree\/README\">https:\/\/cgit.kde.org\/ktechlab.git\/tree\/README<\/a>\n ; The very short instructions are: run <code class=\"language-plaintext highlighter-rouge\">sh simple-setup.sh<\/code> and then <code class=\"language-plaintext highlighter-rouge\">sh simple-launch.sh<\/code>.<\/p>\n\n<p>The notes from joining KDE: \n<a href=\"https:\/\/community.kde.org\/Incubator\/Projects\/KTechLab\">https:\/\/community.kde.org\/Incubator\/Projects\/KTechLab<\/a><\/p>\n\n<p>KTechLab bugs at KDE bugtracker: \n<a href=\"https:\/\/bugs.kde.org\/buglist.cgi?quicksearch=ktechlab\">https:\/\/bugs.kde.org\/buglist.cgi?quicksearch=ktechlab<\/a><\/p>\n\n","pubDate":"Tue, 14 Nov 2017 10:00:00 +0000","link":"https:\/\/zoltanp.github.io\/2017\/11\/ktechlab-0-40-0.html","guid":"https:\/\/zoltanp.github.io\/2017\/11\/ktechlab-0-40-0.html"},{"title":"KTechLab: Simulating PIC microcontroller and a program running on it","description":"<p>KTechLab is capable of simulating not only circuits,\nbut circuits containing PIC microcontrollers with a program running on it.<\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-09-01-ktechlab-1-blink.gif\" alt=\"Simulated PIC, with a program toggling a pin\" \/><\/p>\n\n<p>This blog post explains how to set up and use KTechLab for \nsimulating PIC programs with circuits.\nI have performed the steps from this guide in Xubuntu 14.04 and 16.04, 32 bit versions.\nOther Linux distributions should work, too.<\/p>\n\n<p>As prerequisites, the following are needed:<\/p>\n\n<ul>\n  <li>latest KTechLab (from the time of writing), with PIC support compiled in.\nTo enable PIC support, make sure that the packages \n<code class=\"language-plaintext highlighter-rouge\">gpsim-dev<\/code> and <code class=\"language-plaintext highlighter-rouge\">libglib-2.0-dev<\/code> are installed on your system \nbefore compiling KTechLab.<\/li>\n  <li><code class=\"language-plaintext highlighter-rouge\">gputils<\/code> package<\/li>\n  <li><code class=\"language-plaintext highlighter-rouge\">sdcc<\/code> (Small Device C Compier)\nwith compiler and library support for  PIC microcontrollers.\nBecause PIC libraries in SDCC contain files with non-free license, \nthe version of SDCC packaged in Debian, Ubuntu and possibly other Linux distributions\ndoes not include complete PIC support libraries. \nI recommand to install a \u201ccomplete\u201d SDCC, with complete PIC support enabled.<\/li>\n<\/ul>\n\n<h2 id=\"install-sdcc-with-complete-pic-libraries\">Install SDCC with complete PIC libraries<\/h2>\n\n<p>If you are using Debian or Ubuntu, then you should install\na new SDCC, because the packaged one does not contain \u201ccomplete\u201d PIC support.<\/p>\n\n<p>To test if the SDCC installed on your system has complete PIC support,\ntry to run the script from KTechLab source tree at\n<code class=\"language-plaintext highlighter-rouge\">examples\/pic_blink\/build.sh<\/code>.\nThis script tries to build a simple C program with the system-default SDCC.\nIf you have SDCC installed, and the script signals compilation error,\nthen the installed SDCC does not have complete PIC support enabled.<\/p>\n\n<p>Download SDCC 3.3.0 (I have tested only this version; newer versions might work)\nfrom sourceforge:\n<a href=\"https:\/\/sourceforge.net\/projects\/sdcc\/files\/sdcc-linux-x86\/3.3.0\/\">https:\/\/sourceforge.net\/projects\/sdcc\/files\/sdcc-linux-x86\/3.3.0\/<\/a>\nand and extract it into a directory on your system.<\/p>\n\n<p>In this guide I\u2019m using <code class=\"language-plaintext highlighter-rouge\">~\/.opt\/sdcc-3.3.0<\/code>. \nThus the installation prefix for SDCC in this case is <code class=\"language-plaintext highlighter-rouge\">~\/.opt\/sdcc-3.3.0<\/code>.<\/p>\n\n<p>To validate the new compiler, in KTechLab source directory edit the script\n<code class=\"language-plaintext highlighter-rouge\">examples\/pic_blink\/build_custom_sdcc.sh<\/code>\nso that at line 8 the path to point to the installation prefix of the newly\nextracted SDCC:\n<code class=\"language-plaintext highlighter-rouge\">local SDCC_INSTDIR=\"$HOME\/.opt\/sdcc-3.3.0\"<\/code>\nRun the script; it should signal success.<\/p>\n\n<h3 id=\"in-ktechlab-set-the-newly-installed-compilers-path\">In KTechlab set the newly installed compiler\u2019s path<\/h3>\n\n<p>Start KTechLab, in the menu go to <code class=\"language-plaintext highlighter-rouge\">Settings<\/code> -&gt; <code class=\"language-plaintext highlighter-rouge\">Configure KTechLab<\/code>,\nthen in the newly opened window go to the <code class=\"language-plaintext highlighter-rouge\">SDCC<\/code> tab, \nand at the bottom in the <code class=\"language-plaintext highlighter-rouge\">SDCC install prefix<\/code> \nwrite the installation prefix of SDCC \n(for example <code class=\"language-plaintext highlighter-rouge\">\/home\/zoli\/.opt\/sdcc-3.3.0\/<\/code>).<\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-09-01-ktechlab-2-set-sdcc-prefix.png\" alt=\"KTechLab set SDCC install prefix\" \/><\/p>\n\n<h2 id=\"create-a-project\">Create a project<\/h2>\n\n<p>This is needed because KTechLab needs to identify the PIC microcontroller in use.\nAt the time of writing, only the default one, <code class=\"language-plaintext highlighter-rouge\">P16F84<\/code>, is supported.<\/p>\n\n<p>In the menu, go to <code class=\"language-plaintext highlighter-rouge\">Project<\/code> -&gt; <code class=\"language-plaintext highlighter-rouge\">New Project...<\/code>.<\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-09-01-ktechlab-3-new-prj.png\" alt=\"KTechLab new project\" \/><\/p>\n\n<p>Select name and path for the project and click <code class=\"language-plaintext highlighter-rouge\">OK<\/code>.<\/p>\n\n<h2 id=\"create-a-circuit\">Create a circuit<\/h2>\n\n<p>Then in the menu, select <code class=\"language-plaintext highlighter-rouge\">File<\/code> -&gt; <code class=\"language-plaintext highlighter-rouge\">New File...<\/code> -&gt; <code class=\"language-plaintext highlighter-rouge\">Circuit<\/code>\nand draw the circuit with the PIC.<\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-09-01-ktechlab-4-new-circuit.png\" alt=\"Draw circuit 1\" \/><\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-09-01-ktechlab-5-new-circuit-2.png\" alt=\"Draw circuit 2\" \/><\/p>\n\n<p>Please note that pins of the PIC will only appear \nafter a program has been loaded on the PIC.<\/p>\n\n<h2 id=\"add-circuit-to-the-project-and-save-it\">Add circuit to the project and save it<\/h2>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-09-01-ktechlab-6-add-circ-prj.png\" alt=\"Add circuit to project\" \/><\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-09-01-ktechlab-7-save-circuit.png\" alt=\"Save the circuit\" \/><\/p>\n\n<h2 id=\"create-a-c-program-for-pic-in-ktechlab\">Create a C program for PIC in KTechLab<\/h2>\n\n<p>For simplicity, in this guide I use the example file from KTechLab sources\n<code class=\"language-plaintext highlighter-rouge\">examples\/pic_blink\/pic_blink.c<\/code>.<\/p>\n\n<p>Open the sample C program with <code class=\"language-plaintext highlighter-rouge\">File<\/code> -&gt; <code class=\"language-plaintext highlighter-rouge\">Open...<\/code>.<\/p>\n\n<h2 id=\"add-the-pic-program-to-the-project\">Add the PIC program to the project<\/h2>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-09-01-ktechlab-8-add-c-prog.png\" alt=\"Add PIC program to the project\" \/><\/p>\n\n<h2 id=\"load-the-c-program-to-the-pic\">Load the C program to the PIC<\/h2>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-09-01-ktechlab-9-pic-select-prog.png\" alt=\"Load the C program to the PIC\" \/><\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-09-01-ktechlab-10-pic-prog-loaded.png\" alt=\"Loaded the C program to the PIC\" \/><\/p>\n\n<h2 id=\"fix-up-the-circuit-and-run-the-program\">Fix up the circuit and run the program<\/h2>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-09-01-ktechlab-11-fix-circuit.png\" alt=\"Fix circuit and run program\" \/><\/p>\n\n<p>Click the small Play <code class=\"language-plaintext highlighter-rouge\">&gt;<\/code> button below the PIC.<\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-09-01-ktechlab-12-pic-run.png\" alt=\"Fix circuit and run program\" \/><\/p>\n\n<p>That\u2019s it! The C program is running on the simulated PIC.<\/p>\n\n<h2 id=\"extra-debugging-the-program-runnig-on-the-pic\">Extra: Debugging the program runnig on the PIC<\/h2>\n\n<p>Switch to the C program\u2019s tab, and from the <code class=\"language-plaintext highlighter-rouge\">Debug<\/code> menu select <code class=\"language-plaintext highlighter-rouge\">Run<\/code>.\nYou will be able to step through the C program, and in the meantime\nobserve the status of the circuit in which the PIC is placed.<\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-09-01-ktechlab-13-debug.png\" alt=\"Debugging the program runnig on the PIC\" \/><\/p>\n\n","pubDate":"Tue, 05 Sep 2017 22:30:00 +0000","link":"https:\/\/zoltanp.github.io\/2017\/09\/ktechlab-pic-prog-sim.html","guid":"https:\/\/zoltanp.github.io\/2017\/09\/ktechlab-pic-prog-sim.html"},{"title":"KTechLab is coming back","description":"<p>KTechLab, the IDE for microcontrollers and electronics has joined KDE.\nBelow I\u2019m summarizing its current status and plans.<\/p>\n\n<h2 id=\"status-of-ktechlab\">Status of KTechLab<\/h2>\n\n<p>The very good news is that KTechLab builds and runs on recent Linux distribution.\nCircuit simulation works well.<\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-06-17-ktechlab-1-circuit-sim.png\" alt=\"Circuit simulation\" \/><\/p>\n\n<p>Currently KTechLab depends on Qt4 and KDE4, \nbut it should be migrated to Qt5\/KF5 (KDE Frameworks 5) as soon as possible.<\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-06-17-ktechlab-2-about-kde.png\" alt=\"KDE4 and Qt4 are dependencies\" \/><\/p>\n\n<p>Flowcode, the graphical editor of programs, also works. \nIt can convert the edited flowchart to assembly source for hex program for PIC microcontroller,\nor to the simple language for micorcontroller programming called Microbe.<\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-06-17-ktechlab-3-flowcode.png\" alt=\"Flowcode works\" \/><\/p>\n\n<p>Currently loading programs on simulated microcontrollers needs to be fixed.<\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-06-17-ktechlab-4-pic.png\" alt=\"PIC microcontroller simulation needs work\" \/><\/p>\n\n<p>Loading and debugging C code on simulated PIC microcontroller also needs more work.<\/p>\n\n<p><img src=\"https:\/\/zoltanp.github.io\/assets\/2017-06-17-ktechlab-5-c-code.png\" alt=\"Code debugging on microcontroller needs work\" \/><\/p>\n\n<h2 id=\"plans\">Plans<\/h2>\n\n<ol>\n  <li>\n    <p>Firstly I\u2019d like to have KTechLab running with all features in usable state and have a release.\nQt4 and KDE4 is still mostly around, but I\u2019m aware that it is getting deprecated.<\/p>\n  <\/li>\n  <li>\n    <p>After the release is done, port KTechLab to Qt5 and KF5, and have another release.<\/p>\n  <\/li>\n  <li>\n    <p>Keep KTechLab running on latest Qt and KDE libraries, and if requested, add new features.<\/p>\n  <\/li>\n<\/ol>\n\n<h2 id=\"resources\">Resources<\/h2>\n\n<p>KTechLab has a mailing list at KDE called <code class=\"language-plaintext highlighter-rouge\">ktechlab-devel<\/code>:\n<a href=\"https:\/\/mail.kde.org\/mailman\/listinfo\/ktechlab-devel\">https:\/\/mail.kde.org\/mailman\/listinfo\/ktechlab-devel<\/a><\/p>\n\n<p>On IRC, developers are mostly reachable on <code class=\"language-plaintext highlighter-rouge\">freenode.net<\/code>, on <code class=\"language-plaintext highlighter-rouge\">#ktechlab<\/code> channel.<\/p>\n\n<p>The source code of KTechLab is available in KDE Git, at \n<a href=\"https:\/\/cgit.kde.org\/ktechlab.git\/\">https:\/\/cgit.kde.org\/ktechlab.git\/<\/a>\n (note: I\u2019m aware that this link is not a \u201cstable\u201d one, but for now I couldn\u2019t figure out the \u201cstable\u201d link).<\/p>\n\n<p>Instructions for building and running KTechLab are available in the README file from the source code; online version of that file is available at \n<a href=\"https:\/\/cgit.kde.org\/ktechlab.git\/tree\/README\">https:\/\/cgit.kde.org\/ktechlab.git\/tree\/README<\/a>\n ; The very short instructions are: run <code class=\"language-plaintext highlighter-rouge\">sh simple-setup.sh<\/code> and then <code class=\"language-plaintext highlighter-rouge\">sh simple-launch.sh<\/code>.<\/p>\n\n<p>The notes from joining KDE: \n<a href=\"https:\/\/community.kde.org\/Incubator\/Projects\/KTechLab\">https:\/\/community.kde.org\/Incubator\/Projects\/KTechLab<\/a><\/p>\n\n<p>KTechLab bugs at KDE bugtracker: \n<a href=\"https:\/\/bugs.kde.org\/buglist.cgi?quicksearch=ktechlab\">https:\/\/bugs.kde.org\/buglist.cgi?quicksearch=ktechlab<\/a><\/p>\n\n<p>Old website of KTechLab, to be migrated to KDE infrastruture:\n<a href=\"https:\/\/github.com\/ktechlab\/ktechlab\/wiki\">https:\/\/github.com\/ktechlab\/ktechlab\/wiki<\/a><\/p>\n\n<p>Source code of the old website, in KDE Git:\n<a href=\"https:\/\/cgit.kde.org\/scratch\/padrah\/ktechlab.wiki.git\/\">https:\/\/cgit.kde.org\/scratch\/padrah\/ktechlab.wiki.git\/<\/a><\/p>\n\n<h2 id=\"contributions-are-welcome\">Contributions are welcome<\/h2>\n\n<p>There are several areas where contributions could greatly help the project:<\/p>\n\n<ul>\n  <li>\n    <p>Making all features of KTechLab work in Qt4 port;<\/p>\n  <\/li>\n  <li>\n    <p>Making the codebase of KTechLab ready for Qt5. \nBefore having the first, Qt4 release, please only add fixes which do not break the Qt4 version.<\/p>\n  <\/li>\n  <li>\n    <p>Website is needed, on KDE infrastructure. \nMaybe it would make sense splitting the old website into a wiki and a separate website.<\/p>\n  <\/li>\n  <li>\n    <p>Example circuits\/projects created with KTechLab. These in turn could be also useful as test cases.<\/p>\n  <\/li>\n  <li>\n    <p>Anything else you can think of :-)<\/p>\n  <\/li>\n<\/ul>\n\n<h2 id=\"contact\">Contact<\/h2>\n<p>I recommand using the mailing list <code class=\"language-plaintext highlighter-rouge\">ktechlab-devel<\/code> at KDE; alternatively try IRC, <code class=\"language-plaintext highlighter-rouge\">#ktechlab<\/code> on freenode.net.<\/p>\n\n<p>Update 1: replaced KDE5 with KDE Frameworks 5 (KF5).<\/p>\n\n","pubDate":"Sat, 17 Jun 2017 08:00:00 +0000","link":"https:\/\/zoltanp.github.io\/2017\/06\/ktechlab-is-coming-back.html","guid":"https:\/\/zoltanp.github.io\/2017\/06\/ktechlab-is-coming-back.html"},{"title":"Fixing GTK3 themes for scrollable areas","description":"<p>With GTK3 in Ubuntu 16.04 on XFCE desktop environment, some \napplications have started to show grey rectangles in vertically scrollable \nregions. These grey rectangles covered the useful contents of the scrollable \nregions.\nThe end result is that scrollable regions appear as if they have \ngraphical corruption in them.<\/p>\n\n<p>Apparently these grey rectangles are called scrolling indicators and \nthey appear as grey because the used GTK theme does not set any styling \non them. See this stackoverflow question:<\/p>\n\n<p><a href=\"https:\/\/unix.stackexchange.com\/questions\/250880\/how-to-disable-or-fix-gt\nk-scrolling-indicators\">https:\/\/unix.stackexchange.com\/questions\/250880\/how-to-disable-or-fix-gt\nk-scrolling-indicators<\/a><\/p>\n\n<p>and this Ubuntu bug:<\/p>\n\n<p><a href=\"https:\/\/bugs.launchpad.net\/ubuntu\/+source\/ubuntu-themes\/+bug\/1449515\">https:\/\/bugs.launchpad.net\/ubuntu\/+source\/ubuntu-themes\/+bug\/1449515<\/a><\/p>\n\n<p>I\u2019m copying the fix from Stackoverflow:<\/p>\n\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>To fix issue on fedora with light-gtk3-theme v14.04 i added this CSS to \n\/usr\/share\/themes\/Ambiance\/gtk-3.0\/gtk-widgets.css:\n\n\/*************\n * overshoot *\n *************\/\n.overshoot.top {\n\tbackground: -gtk-gradient(radial, center top, 0, center top, 0.7, \nfrom(shade(@bg_color, 0.92)), to(alpha(@bg_color, 0.0)));\n}\n\n.overshoot.right {\n\tbackground: -gtk-gradient(radial, right center, 0, right center, \n0.7, from(shade(@bg_color, 0.92)), to(alpha(@bg_color, 0.0)));\n}\n\n.overshoot.bottom {\n\tbackground: -gtk-gradient(radial, center bottom, 0, center bottom, \n0.7, from(shade(@bg_color, 0.92)), to(alpha(@bg_color, 0.0)));\n}\n\n.overshoot.left {\n\tbackground: -gtk-gradient(radial, left center, 0, left center, 0.7, \nfrom(shade(@bg_color, 0.92)), to(alpha(@bg_color, 0.0)));\n}\n\n\/**************\n * undershoot *\n **************\/\n.undershoot {\n\tbackground: none;\n}\n<\/code><\/pre><\/div><\/div>\n\n<p>Instead of <code class=\"language-plaintext highlighter-rouge\">\/usr\/share\/themes\/Ambiance\/gtk-3.0\/gtk-widgets.css<\/code>, one can edit the\n<code class=\"language-plaintext highlighter-rouge\">gtk-widgets.css<\/code> file corresponding of the GTK theme in use.<\/p>\n","pubDate":"Mon, 12 Jun 2017 22:00:00 +0000","link":"https:\/\/zoltanp.github.io\/2017\/06\/gtk3-scroll-fix.html","guid":"https:\/\/zoltanp.github.io\/2017\/06\/gtk3-scroll-fix.html"},{"title":"KTechLab and PIC program simulation: .cod creation?","description":"<p>KTechLab (\n<a href=\"https:\/\/github.com\/ktechlab\/ktechlab\/wiki\">Github wiki<\/a> ;\n<a href=\"https:\/\/cgit.kde.org\/ktechlab.git\/\">KDE Git repository<\/a>\n)\nin its current state is able to simulate circuits,\nbut it fails to simulate PICs with uploaded .c or .asm program,\nbecause it is not able to properly generate .cod file from the\nsource code.<\/p>\n\n<p>For simulating a PIC program, KTechLab needs to load\na .cod file into <a href=\"http:\/\/gpsim.sourceforge.net\/\">gpsim<\/a>.<\/p>\n\n<p>Help is welcome in:<\/p>\n\n<ul>\n  <li>documenting proper sdcc\/gplink\/gpasm usage for .cod file creation\n (no C++ coding is required for this ;-) );<\/li>\n  <li>creating a few sample programs\/projects for PICs, to be used for\n quick testing and included as a sample with KTechLab;<\/li>\n<\/ul>\n\n<p>At the time of writing there is a junior C++ task, too:<\/p>\n\n<ul>\n  <li>fixing KTechLab to actually compile the GPSim support, when it finds\n GPSim. Currently this is broken, because the <code class=\"language-plaintext highlighter-rouge\">NO_GPSIM<\/code> macro\n ends up defined always. This macro should be converted to the\n <code class=\"language-plaintext highlighter-rouge\">GPSim_FOUND<\/code> macro (and the negative logic removed).<\/li>\n<\/ul>\n\n<p>If you feel like contributing to KTechLab,\nplease contact the project on the mailing list or on IRC.<\/p>\n\n<p>Have fun with KTechLab!<\/p>\n","pubDate":"Sun, 26 Feb 2017 22:30:00 +0000","link":"https:\/\/zoltanp.github.io\/2017\/02\/ktechlab-sdcc.html","guid":"https:\/\/zoltanp.github.io\/2017\/02\/ktechlab-sdcc.html"}]}}