Skip to main content

Displaying aprx-rf log onto 4x20 LCD display

Received a request on a short how-to to get the aprs packet shown in the 20x4 LCD display. The way I have for my setup are the following:

1. Raspberry Pi 3 (Raspberry Pi 2 will work, but below that, you need to have different kind of connection for the GPIO).
2. 20x4 LCD HD44780 or compatible screen.
3. Install lcdproc package ($ sudo apt-get install lcdproc)
4. A modified HD44780 driver,

I'm using the following diagram for my LCD connection to the GPIO lines. Ignore the temp sensor connection.

*Connection diagram taken from website.

The how-to to get the LCD working can be found on the too.

A modified HD44780 driver can be found down below along with my python code.

Or download or compile your own following the thread in the following forum link:

This modified driver need to be moved into /usr/lib/arm-linux-gnueabihf/lcdproc/ directory and replacing the driver that comes with the lcdproc package.

Add the correct configuration (if missing) from your /etc/LCDd.conf. I've the following:



Done with the above, you can test your LCD setup if it is working correctly, run the LCD and lcdproc daemon:

$ sudo /etc/init.d/LCDd start
$ sudo /etc/init.d/lcdproc start

The above should bring up your LCD alive and show the cpu information etc if everything set correctly. You can enable or disable what to be displayed in configuration file /etc/lcdproc.conf. For me, I've disabled most of them except the cpu information.

Now, you've got the LCD working. Great, now the fun part to code a simple python script so that it will read the aprx log file and display the last line into the LCD screen. You need at least a Python 2.7 which I believe should be installed as default. You also need few more packages, namely the aprslib (to parse APRS packets), lcdproc (for displaying to LCD) and LatLon (for calculating distance).

To install the lastest aprslib python package, please refer to the following website:

To install the latest lcdproc package, you can refer to the official website:

And lastly the LatLon package can be found here:

My lovely looking python coding, modified driver and startup script to get everything to appear on LCD screen can be found here:

To run the above python code, just run it against the aprx-rf.log, example:

$python /var/log/aprx-rf.log

I have it running as a daemon by creating a startup script in /etc/init.d/. Sample can be found in the above file in my google drive.

Have fun!


Popular posts from this blog

Raspberry Pi + svxlink = Low power echolink node

What is the easiest way to get echolink node up and running on raspberry pi? Surely, get a premade image which has everything inside. I've created one image which can fit into 2GB SD card for this, just follow the following steps to get it up and running:

For hardware, you need to have the following:
Raspberry Pi for sure, with a minimum 4GB SD cardA USB echolink interface, can be commercially sourced or DIY. There are many DIY schematics out there that you could follow.  Here is the configuration on how to get the things working together, courtesy of website:

For software:
Download the following prepared image from google drive, it is based on raspbian-2015-02-16 image and has pre-installed svxlink-14.08. raspi-wheezy-svxlink.img.zipUnzip the file and copy it to your SD card using the following instructions that can be found here.Boot up the RasPi, if you do not have an HDMI monitor, you may want to access the RasPi from your terminal emulator (putty or the like), connec…

Configuring TechniColor TG784N V3 (Maxis issued broadband router) to use different DNS servers

Previous write up deleted. It seems to change the DNS servers in as shown on the status, but it does not really work.

Check the following website, this seems to work:

This can be done from the WEB GUI too, go into the following configuration path:

In my example above, I'm using paid service unblock-us instead of google public DNS servers.

Debugging DMEE

I've come across many posting on the Internet (via google search), people asking on how to debug a DMEE for payment program. One of the few suggestion was to create a user exit just before the node that we would like to debug and put our breakpoint there. It seems that SAP has built-in this feature without needing us to create a user exit (available in ECC 6, have no idea if this is available on prior releases). Here is how you can put your breakpoint without any coding.

1. Display your DMEE tree using transaction: DMEE_DEBUG.

2. Click on the node that you would like to debug.
3. Go to conditions tab, you could see the Set Breakpoint button. Click to set.

4. Run the SAPFPAYM and specified the payment run date/id, payment format etc. SAP will stop at the node which you point your breakpoint at, as in 2.
5. To remove your breakpoint, just run the DMEE_DEBUG again, there is an option to delete all own breakpoints or all.