ProxyLCD and graphical LCDs with HD44780 driver

Last time we wrote an HD44780 driver that takes GfxLCD compatible display and works with CharLCD package. This is nice because we can use big ILI9486 as a character display.

You may ask, why?
Because with ProxyLCD we can see a big output from Symfony 🙂 And because we can 🙂
Today we will focus on two bugs from a previous part and we will see if all chipsets can work with HD44780 driver.

Part 1


Raspberry Pi and package for graphical LCDs – GfxLCD

It took some time but finally, we can exclude GfxLCD package from The Doton project. After this, we may focus on the next stage of Doton project.

But back to now:) We need to create a new package and publish it on the PyPi.

pip install gfxlcd

GfxLCD on PyPi
Old code, before module extraction, is under tag before-split. This way old posts still have some sense:)


Jenkins and Docker

As it sounds strangely I lost VM like in I can not find it 🙂 And this VM was quite important because it had Jenkins configured for my Python projects.

But what was it? This VM tested my code for pep8 and pylint violations. It also executed nose test. Not much but allows keep code much cleaner.

I think it is a good opportunity to move to Docker. After rather long time (way to long) I have something that is a compromise between ideal and useful environment.


Making CharLCD compatible with Python3

We have working LCD and LCD Manager library. They works on Python 2.7 but not v3. I thought about making them v3 compatible but before that I had to upgrade my system. And this was bad idea 🙂

Problem with SD card and free space forced me to change system drive to USB. And then everything went from bad to worse 🙂 But after 5 hours system was back to being ok.

As first we need to port CharLCD. After reading I started porting.


Piader – upgrade LCD by game – part 1

Lets do some upgrades to our LCD package. I think the best way to do so is to write a simple game.

We will use both screens to display game objects, on one there will be flying DMO (defined moving object :D), and on second lcd – a player. Enemy and player will be trying to hit each other with bullets. Simple concept but exactly what we need.

Lets name it Piader. 

Source available at the bottom of this post.


Python and Jenkins integration

Lately we started using Jenkins at work. With proper configuration for PHP it allow us to perform predefined list of tasks in response to merge requests. Tasks consist of performing tests, code coverage, PMD analyse, search for duplicate code, find CRAP code and detect massive amount of violations – from code format to function complexity. Of course nice report and charts are generated after. Its possible to browse reports, go into files and see what is wrong with them all with comments. Very, very useful. So why not use it with our Python app ? I searched The Web and found lots of information but mostly outdated. Not a nice beginning. After some research and test I managed to run nosetests with coverage report, pylint, pyflakes, SLOCCount and clonedigger. Something to start with 🙂 So lets try and create our own Jenkins Server. We will install Jenkins (on VirtualBox in my case), required plugins and additional software. Next we will create new project and link it with git repository (with Bitbucket in my case but any will do). Finally we will add all those tasks and reports. (more…)