Howto add a 4×4 keypad to a Raspberry Pi with an MCP23017 and Python

January 27th, 2015

Touch screens are great. Keyboards are often necessary. But what if all you need is a numeric keypad?

4x4 I2C keypad for Raspberry Pi

(click on image for larger version)

In my latest article, I show you how you can easily add a 4×4 keypad to your Raspberry Pi using an MCP23017 I/O expander and Python.

I also present a very easy to use Python library to read the keypad.×4-matrix-keypad-with-mcp23017-and-python/


Banana Pro Review – Benchmarks, Power Consumption, and much more!

January 14th, 2015

Banana Pro Review

Today I have a review of the new Banana Pro from LeMaker for you, with detailed information, benchmarks, power consumption and much more!

Review Index

Page 1: Introduction, Does it look the same?
Page 2: Closer Look at the Banana Pro
Page 3: Feature Comparison, Operating Systems
Page 4: Software Compatibility
Page 5: WiringPi, RPi.GPIO, Hardware Compatibility
Page 6: More hardware compatibility, WiFi Configuration
Page 7: Documentation, Benchmarks
Page 8: Power Utilization, Support, Conclusion


Odroid-C1 Preview: $35 Quad-Core SBC in a Raspberry Pi like form factor

December 23rd, 2014

ODROID announced a very interesting single board computer while I was fighting the flu… the ODROID-C1 for only $35
Image courtesy of

(click on image for larger version – image courtesy of

You can clearly see that the major features are very attractive:

  • quad core Amlogic ARM6 Cortex-A5 (ARMv7) running at 1.5GHz
  • Mali™-450 MP2 GPU (OpenGL ES 2.0/1.1 enabled for Linux and Android)
  • 1GB DDR3 32 bit memory at 792MHz
  • 40 pin GPIO header, 92.75% compatible with the Raspberry Pi Model A+ / B+ (37 of 40 pins)
  • two 10 bit ADC channels (which along with 1.8Vref are the three different pins on the GPIO header)
  • four USB2.0 host ports
  • one micro USB OTG port
  • 10/100/1000 Mbps Ethernet port
  • eMMC4.5 HS200 Flash Storage slot
  • UHS-1 SDR50 MicroSD Card slot
  • on-board Real Time Clock (with battery connector)
  • IR receiver
  • DC adapter jack to support more current than micro USB
  • Ubuntu 14.04 support
  • Android KitKat (4.4) support

Here is a block diagram:

image courtesy of

(click on image for larger version – image courtesy of
Hardkernel ran a number of benchmarks comparing the ODROID-C1 to the Raspberry Pi, here is a summary of their results:

  • 7.8x faster than Pi for Dhrystone-2
  • 9.9x faster than Pi for double precision Whetstone
  • 4.1x faster for file copy
  • close to 600Mbps on a Gigabit network

(I plan on reviewing the ODROID-C1 in the near future, and I will put it through the wringer)

Basically up to eight times the floating point and integer performance – not too shabby!

In order to keep the price so ridiculously low, two Raspberry Pi features were dropped:

  • there is no camera connector
  • there is no LCD connector

Here is the back of the board – note the eMMC connector and uSD slot:

image courtesy of

(click on image for larger version – image courtesy of

It will be interesting to see how the ODROID-C1 will do in the marketplace – it certainly has a lot of horsepower for the price.

The Raspberry Pi has about four million installed units, and an incredibly active user forum, serving educational users everywhere.

The ODROID-C1 is aimed more at technical users who need more “oomph”, and don’t need dedicated camera/lcd connectors.

I suspect the ODROID-C1 will find a niche – and supporting Ubuntu and Android 4.4 certainly give it different markets than Raspbian.

Related Links

Making a Raspberry Pi based EEPROM Gang Programmer

December 9th, 2014

I need to program a lot of  EEPROM’s. Frankly I got scared of the prices I saw for commercial gang programmers that could program the 24LC256 and 25LC512 EEPROM’s I use.

A bit of googling found software I could use to program EEPROM’s with a Raspberry Pi, so I made an eight EEPROM gang programming board!

Raspberry Pi Model A+ EEPROM Gang Programmer @

(click on the image for a larger version)

A bit of wiring on a prototyping board, a new shell script, and typing

sudo ./

now programs eight EEPROM’s for me! No more programming them one at a time!

Follow the link below for the full article, including schematics, link to the software, gang programming script etc

Making a Raspberry Pi based I2C EEPROM Gang Programmer

Article Index:

  1. Why am I building a gang programmer?
  2. The Hardware
  3. The Software

SinoVOIP BPi-M2 Preview – Quad core Banana!

December 3rd, 2014

I love the smell of new electronics in the morning :-)

I was checking on the forums earlier today, and I ran across the announcement of the BPi-M2 (which also reminded me that I’d forgotten to post about LeMaker’s Banana Pro)

(the images in this post are courtesy of Google circle postings by SinoVoip staff, presumably they want them widely seen)

image courtesy of SinoVoip

(click on image for larger version)

The board looks pretty good – we can see four USB2.0 ports, which means no need for an external hub for a lot of applications. Note the 40 pin GPIO header, up from 26 pins.

image courtesy of SinoVoip

I am certain more specifications will be released over time – however we can deduce that there must be a USB2.0 hub on board, as there are four exposed USB2.0 connectors, and the A31s chipset only has two USB2.0 ports.

Hmm… I think there is one native USB2.0 port brought out, and the second port goes to a four port USB hub chip – this would account for the observed four USB2.0 ports, and the WiFi adapter on the bottom of the board.

Or perhaps the WiFi adapter goes to a direct port and the four accessible ports are from the hub? Testing will tell…

image courtesy of SinoVoip

(click on image for larger version)

I’d have preferred if the four USB2.0 ports were on the same side of the board… but I am not about to complain about having four ports instead of two!

image courtesy of SinoVoip

(click on image for larger version)

The four mounting holes seem to match the ones on the original Banana Pi – perhaps this is why the IR receiver is in the same place as on the original BPi, and why the extra USB ports are on the side!

Note what appears to be a DC power jack in the lower left side of the board.

image courtesy of SinoVoip

(click on image for larger version)

You can see the push-push micro SD card socket on the top right, and below it, the WiFi module. It looks like there is a provision for an SMC WiFi antenna connector.

(click on image for larger version)

Yes! There is a proper DC power supply jack above, on the lower left!

Personally, I far prefer such a jack to powering the boards with a micro USB connector as they can handle more power.

Note the stereo audio + video jack on the top right.

There was some disappointment expressed on Google+ at BPi-M2 not having a SATA port, and not having USB3.0.

While I’d love to have Sata and USB3.0, the A31s does not directly support Sata or  USB3.0, so I don’t see any point in adding it on board as it would have to go through USB2.0 interface, greatly limiting its bandwidth.

I am not very familiar with the A31s, if it support some sort of external bus, or even a single PCIe lane, perhaps it would be possible to hook up a high speed USB3.0 phy to, or a Sata interface.

I can see many uses for the BPi-M2, and I am looking forward to evaluating it (and writing a review like the one I did for the Banana Pi)

For those applications that require a higher bandwidth Sata interface than can be accommodated with a USB2.0-Sata bridge, the original Banana Pi and LeMaker’s upcoming Banana Pro may be a better choice.

Those applications that need higher compute performance, the quad core A31s based BPi-M2 may be a better choice.