Use an APDS-9930 Ambient Light and Proximity Sensor with Python (Raspberry PI/PC)

APDS-9930 I2C sensor connected to VGA

A few weeks ago I posted an article on how to find your computer’s hidden I2C port. Today I’m going to take it one step further and show you how to actually use it.

After making the Arduino library for the APDS-9930 ambient light and proximity sensor, I decided to port it to Python. In this post I’m going to show you how to use it. Continue reading “Use an APDS-9930 Ambient Light and Proximity Sensor with Python (Raspberry PI/PC)”

Find Your Computer’s Hidden I²C Port and Use It!

If you don’t know what I2C (read “I-squared-C”) is, you may want to check out its Wikipedia page, but in a few words, it’s an amazing protocol that allows communication between one (or more, according to Wikipedia) master devices and one or more slave device, using only 4 wires, two for power supply and two for data. Every slave device has its own unique address that the master can address to request information from the slave.

There are sooo many applications and useful electronic gadgets that use this protocol, like screens and sensors, and if you have an Arduino you might have already used it before without even knowing. Check if your sensor/display/toaster has two pins named SDA and SCL. If it does, it’s probably I2C-compatible, and you might be able to use it with your computer. Continue reading “Find Your Computer’s Hidden I²C Port and Use It!”

How To Burn LightScribe Labels on Latest Versions of Ubuntu (x86 and x64)

I own a bunch of LightScribe-compatible disk burners, and I always buy LightScribe media because I don’t like handwritten labels. LightScribe-labeled disks look better, maybe more professional, even when it’s just a CD with pirated music.

If you are like me, you might have probably noticed that lately everything seems trying to make us not want to use this awesome technology on Ubuntu. The official LightScribe website is unmaintained/has been hacked, so the LightScribe System Software and the LightScribe Simple Labeler can’t be downloaded; the mirrors that used to host the Debian packages for the LaCie 4L Labeler app are down as well;  even those users who are brave enough to download the RPM from LaCie’s and use alien to debianize it might have noticed that a Segmentation fault makes our beloved app crash.

However, you don’t have to worry any more! I’ve got a solution here for everybody! Continue reading “How To Burn LightScribe Labels on Latest Versions of Ubuntu (x86 and x64)”

How To Use Both Kivy and GTK in the Same Application

Today I was wondering whether both Kivy and GTK could run together in the same application. So I started looking up online to see if anybody already tried, but I didn’t find anything. Then I thought maybe I could try doing it myself. I was surprised when I managed to do it. All you need to do is run them in a separate thread. That’s it! I thought it wasn’t going to work as GTK is very picky with threads, but it did!

You can do very useful things with both frameworks running. You can, for example, have an Ubuntu AppIndicator connected to your app, create a Unity launcher QuickList, use the music/messaging menu, send notifications, run a separate GTK window, etc. Continue reading “How To Use Both Kivy and GTK in the Same Application”

MultiROM and TWRP for Samsung Galaxy Express AT&T (SGH-I437)

Note: kexec-hardboot, the kernel feature needed to boot secondary ROMs through MultiROM, hasn’t been ported yet! If you want to help me with it, please contact me, see if I’m online on (usually on #kivy, #twrp, #multirom) or just do it yourself and let me know 🙂

I ported MultiROM and its custom TWRP recovery to Samsung Galaxy Express AT&T – codename expressatt, model number SGH-I437 (also compatible with the NFC version SGH-I437P and with any device that can run the CyanogenMod build for expressatt). Note that, as I said above, kexec-hardboot hasn’t been ported, so it’s pretty much useless as of now. You can still use the recovery, though, or install MultiROM as well and brag 😉

Continue reading “MultiROM and TWRP for Samsung Galaxy Express AT&T (SGH-I437)”

Navigation with Back and Escape Buttons with Kivy on Android

As you write your app and decide to target the Android platform, you might have noticed that implementing navigation is a little harder than in native Java apps.
It’s harder, but not impossible.

There are different ways to do it, but it’s easiest when you use a ScreenManager to manage all your app’s screens.

Continue reading “Navigation with Back and Escape Buttons with Kivy on Android”