66% or better

Easy web interface with GPIO access runs on Raspberry Pi

rpi-web-interface-using-mysql-php

Here’s a Raspberry Pi hack that adds web control using PHP and MySQL. As you can see in the image, it serves up a webpage (using the Apache2 server) which allows you to change the state of the GPIO pins. It’s not super-complicated, but it is nice to see a step-by-step guide for installing and configuring the package.

Web interface GPIO control is one of the features we loved about the Adafruit Web IDE. But this offering is loaded completely from the RPi (the Adafruit package uses cloud based code) and utilizes the tools most Linux network admins will be used to. A MySQL database manages the connection between GUI commands and GPIO modification. The webpage is served up by a PHP script which takes care of polling and changing database values. Configuration requires a new database, plus the username and password which has access to it.

PIC programming adapter for the Raspberry Pi

Here’s another offering when it comes to PIC programming from the Raspberry Pi. The design seeks to adapt the GPIO header so that it may be used for programming PIC microcontrollers, but this does involve a bit more than just physically connecting pins to the target chip. Most of the PIC family require a 12V programming level, and this setup makes that possible.

The sets of NPN transistors shown in the schematic fragment above are arranged in darlington pairs. They’re actually switching voltage from the 6V linear regulator built into the system using the Pi’s 3.3V pins. There’s also a 12V regulator, so you’re going to need a power supply that is capable of sourcing more than that.

We’ve seen a similar concept before but this design carries it a step further. There are several status LEDs built into the programmer, and it includes support for detecting which chip is being programmed. So far this covers just four different chips, but we’re sure that it could be adapted to fit your own needs.

[via Reddit]

freeSoC, for when you need 68 I/O pins

Like many of us, [Jon] began his journey through the magical world of microcontrollers with an Arduino. For a beginner, the Arduino is a wonderful tool, but [Jon] quickly found himself limited by the platform. There are too few pins on the Arduino, and and the platform doesn’t really lend itself to extremely complex projects. To this end, [Jon] designed freeSoC, an Arduino-compatible platform based on the Cypress Semiconductor PSoC 5.

The Cypress PSoC 5 is an extremely capable microcontroller with 60 general purpose I/O pins and 8 special purpose, high current outputs. Every pin on [Jon]‘s freeSoC is completely configurable; if you want 24 SPI ports and a dozen 20-bit ADCs, just launch Cypress’ design software and configure the chip graphically. With this many I/O ports, the PSoC 5 is as useful as an FPGA, without all the hassle of actually being and FPGA.

A really neat feature of the freeSoC is its ability to be programmed graphically. Using Cypress’ PSoC Creator IDE, the multitude of I/O pins can be configured to just about anything very easily. Because the PSoC 5 is based on an ARM Cortex-M3, programming the freeSoC is as easy as any one of many ARM dev boards that were recently released.

[Jon] came up with a very, very neat project here, and it’s something we can definitely see the utility of.

Thanks [Dale] for sending this one in.

A truly professional Raspi analog input

Much to the chagrin of hardware tinkerers, the Raspberry Pi doesn’t have analog inputs on its GPIO pins. Sure, you can blink a LED with just a few console commands, but reading sensors with a bone-stock Raspi requires a little additional hardware. [Brian Dorey] just released a board that allows for 8 analog inputs on the Raspberry Pi with a 16-bit resolution that is much higher than any Arduino-based build.

[Brian]‘s build is based on an earlier, similar iteration of a Raspi analog board we saw last July. Like the previous version, the new professionally made PCBs use a pair of Microchip MCP3428 analog to digital converter. These ADCs are able to sample four channels at a resolution of 16 bits; a vast improvement over the 8-bit ADCs included on every Arduino.

The boards communicate with the Raspberry Pi over an I2C serial bus using a neat stackable header. In theory, it should be possible to use several of these boards and measure dozens of analog channels, but we’ll leave a demonstration of that up to [Brian].

Problems powering Raspberry Pi from GPIO header

[Zaion] grabbed an ATX power supply to source the 5V the Raspberry Pi needs to run. The common problem when it comes to RPi supplies is a shortfall in how much current a USB wall adapter can source. The ATX shouldn’t have this problem, but none-the-less he found that the USB ports were only reading about 5V. Strange. He grabbed the soldering iron and fixed the issue with a piece of jumper wire (English translation found in the second half of his post).

The problem was discovered when trying to get a WiFi dongle to work on one of the RPi’s USB ports. It simply wouldn’t show up, and after going down the blind alley of assuming it was a driver problem he started to investigate the hardware. After discovering the below-nominal voltage [Zaion] measured the resistance between the 5V pin on the GPIO header and the one on the USB port. It reads 3-4 Ohms and he concluded that the trace is too thin. We took a quick look at the schematic for the board and see no reason for the voltage drop. His jumper wire fixed the issue but it leaves us wondering, is this an isolated case, or a design flaw? Tell us what you think in the comments section.

Control Raspi GPIO pins in the browser

Now instead of wrangling Python or PHP to do your bidding, [Eric] came up with a way to control the GPIO pins on his Raspberry Pi in a browser.

[Eric] calls his project WebIOPi, and it’s the perfect tool if you’d just like to blink a LED or control a relay over the internet. Simply by pointing his browser to the IP of his Raspi, [Eric] can turn GPIO pins on and off, directly from his desktop browser.

All the code for WebIOPi is available on [Eric]‘s Google code page. The UI of [Eric]‘s project is fully customizable, so it’s entirely possible to control your garage door from a smart phone simply by loading up a web page hosted on your Raspi and pressing a button.

Right now WebIOPi is only able to turn GPIO pins on and off. That will change as [Eric] implements UART, SPI, and I2C in his project, making it possible to do a lot of cool stuff without having to write much – if any – code.

Using the GPIO pins on a Raspberry Pi

In addition to being a serviceable single board computer, the Raspberry Pi also has a header full of GPIO pins at your beck and call. [Tedbot] sent in a great tutorial on using these pins with Python, Bash, and C.

The GPIO pins on the Raspi are arranged in a 2×13 header. Until Sparkfun manages to manufacture a decent Raspi protoboard, the easiest way to break these pins out is with an old IDE ribbon cable. After plugging the other end into a breadboard, [Tedbot] had an easily accessible set of Raspi pins.

To control these pins, [Tedbot] found two libraries: the first is WiringPi that implements a C-style, Arduino-like programming environment on the Raspi. The second is the RPi.GPIO Python package. Since the Raspi runs Linux, and everything in Unix is a file, [Tedbot] used a shell script to blink a LED.

One word of warning if you’re building a board to extend the capabilities of the Raspi: these pins aren’t 5 V tolerant, so you’ll need to throw in a buffer or level converter when building a Raspi circuit.

Edit: Adafruit is releasing a Pi Plate prototyping board in a few weeks. Neat, huh?