Tuesday, March 25, 2014

oled and beaglebone black testing


Thanks to the existing libraries from Adafruit (BBIO) and py-gaugette (http://guy.carpenter.id.au/gaugette/) I was able to extend the display capabilities using Python.  Video shown above testing for display and speed.

I also wrote my own font rendering, I built up a 8x16 pixel font set based on whatever my Ubuntu desktop had on its /usr/share/ directory that looked good enough when I was trying to figure out how to render ttf into bitmaps.  Thanks for the Python ImageFont module I was able to dump a bitmap font in to Python source code.

I also sped up font rendering by a lot by directly manipulating the image buffer at the byte level.  There is a lot more optimization that can be done but I think the performance is good enough for me to build up that menu system I am thinking about.

JondZ
March 2014


OLED Display + Buttons on the Beaglebone Black



It is a lot of work to make one of these.  It took me a whole night but it would be very useful for me.  At the moment I am developing a good python-based menu system to go with this.

Back View
 
Front View
Mounted on a Beaglebone Black
They all fit on the Beaglebone Case!

A good pocket computer.  I'll make up another one, a BLUE OLED from ebay just came in.

JondZ / March 2014

Friday, March 21, 2014

Writing custom python-based menu system on a small lcd

Beaglebone Black + SSD1306 + Buttons Prototype
I wish I could write in C right now to write drivers for this beautiful display.  I could have used lcdproc or something similar that already has a menu system.

As it is I am writing a custom Python program that drives a simple menu system.  Eventually I will load this mini computer with my useful programs so I can carry it along.

Show here is the prototype for a simple OLED display with some buttons connected to a BeagleBone Black.  The menu system for now supports simple navigation (up, down, etc) and supports submenus.  Lots more work to be done.  I used drivers from Adafruit for GPIO and the "py-gaugette" library for basic screen initialization, pixel and text rendering work.  I had to write a few more pixel level stuff like reversing pixels.  Not such a problem with Python.

At least I can figure the basics of this OLED unit, I can deal with pixel memory addressing and bit masking, but I just cannot figure yet the hardware screen initialization stuff.

Friday, March 07, 2014



So..I am trying to understand what I am working with, getting back to basics.  Usually I follow instructions such as wiring diagrams without really understanding how they work. 

Here is a MCP23017 port expander connected to a BB Black, so I can understand more clearly the IO communications, pullup resistors, and a little bit of I2C.  Its really fun.  Unfortunately I can only do this with python for now; maybe later on I can have the time to review C again.

JondZ

Creating ipip tunnels in RedHat 8 that is compatible with LVS/TUN. Every few seasons I built a virtual LVS (Linux Virtual Server) mock up ju...