Adding GPIOs To The Raspberry Pi With The Camera Interface

GPIOs

The Raspberry Pi Model B+ was just released, and now everyone who picks one of those up has a few more GPIO pins to play around with. For the millions of people with the two-year-old version of the Pi, we’re still stuck with the same old, same old: 17 GPIOs on the big header, and that’s about it as far as toggling pins goes.

The Broadcom SoC on the Pi has far more GPIO pins than are broken out on the large header, and a few of those go to the CSI camera interface. These GPIOs can be broken out with a few flat cables (Portuguese, Google Translatrix), giving you four more GPIOs, and this technique can also be used with the new, expanded Model B+.

The CSI camera connector has two I²C lines that go directly to the camera, controllable in Linux as GPIO0 and GPIO1. There are two more GPIO connectors on the CSI connector controllable as GPIO5 and GPIO21. By carefully slicing and soldering wires to a flat cable, these GPIO lines can be broken out onto a breadboard.

There’s a video below demonstrating these GPIO lines being used to control a few LEDs. Of course, anything that is possible with a normal Raspi GPIO is possible with the CSI connector GPIO lines.

[Read more...]

Building The Slimmest Raspi

slim_pi

[Colin], AKA [Domipheus], was working on a project to monitor a thermostat with a wall mounted Raspberry Pi and a touchscreen. Simple enough, but the Pi has a problem: The plugs are all around the perimeter of the board, and with a TFT touch screen shield, it’s a bit too thick to be wall mounted. What followed is a hack in the purest sense: [Domipheus] removed and relocated components on the Pi until the entire Pi/display stack was just a hair over 10mm tall.

A Raspberry Pi Model A was used for this build, meaning the Ethernet jack was gone, and there was only a single USB port to deal with. Still, the highest components – the RCA and audio jacks – were too tall and needed to be removed; they weren’t going to be used anyway.

After these components were gone, [Domipheus] turned his attention to the next tallest parts on the board: fuses, caps, and the HDMI port. For fear of damaging the surrounding components when removing the HDMI connector the right way, this part was simply hacked off. The large tantalum cap near the USB power connector was removed (it’s just a filter cap) and the large protection diode was moved elsewhere.

Slimming down a Pi is no good without a display, and for that [Domipheus] used this touchscreen thing from Adafruit. Things got a little complicated when the project required the ability to remove the LCD, but you can do amazing things with a DIP socket and a file.

The end result is a Raspberry Pi with touchscreen display that’s just a smidgen thicker than a CD case. It’ll fit right up against a wall in its repurposed enclosure, and the end result looks very professional.

[Thanks Luke via reddit]

The Raspberry Pi Model B+ Is Here (Again!)

raspberry_pi_Pi_side_01_ORIG

Depending on who you believe, yesterday someone either broke an NDA or was the lucky recipient of an Element 14 shipping error. Nevertheless, we were lucky enough to get a glimpse at the new Raspberry Pi Model B+. Today, everything is live, and Adafruit has a great teardown of what’s new, what’s changed, and what’s completely different in this new board.

The biggest question about this new Pi was the CPU: the Broadcom SoC in the models A and B are looking a little long in the tooth right now, and an upgraded CPU would be a very, very welcome addition. There is no change. This is the same 700 MHz Broadcom chip with 512MB of RAM. There will not be a ‘magical, because you’re awesome’ RAM upgrade the original Model B saw early in production, either – there simply aren’t enough address pins in the SoC.

Despite not having an upgraded CPU, there are some neat features that addressed the complaints of the original Pi: The standard sized SD card socket is replaced with a microSD card socket that won’t stick out over the edge of the board. The ports are rearranged, with the analog video out on a TRRS plug with the audio. There are now four USB ports and an Ethernet port thanks to this chip, and mounting holes galore: they’re M2.5 holes in a square 58mm wide and 49mm high. Also included in the B+ is a completely redesigned power supply – the jumbo linear regulator is gone, replaced with an all-around better power supply.

The biggest change for anyone looking making a project with the Pi is the expanded GPIO header. This is a 40 pin header, with the ‘top’ pins identical to the original 26 pin header. Yes, all your existing Pi plates/shields/whatevers will still work. The new pins on this header include nine more GPIO pins, the I2S pins for the Wolfson audio card, and a pair of pins for an ID EEPROM. Connections to an ID EEPROM have been a feature of the BeagleBone for a while now, and this will allow the Pi to configure the appropriate I/Os and kernel modules at boot, depending on what Pi Plates are attached.

The best part about this is the price – it’s the same as the OG Model B. Using the same case as you old Model A or B is out of the question, but that’s totally what Kickstarter is for, right? You might want to grab one of those, because this is probably going to be the form factor for the upgraded Raspberry Pi 2.0 that will probably be released in a year or two.

Introducing The Raspberry Pi B+

rpi-b-plus

Click to embiggen

It looks like Element 14 screwed up a single shipment, because some lucky soul just received an unreleased model of Raspberry Pi. If you can believe the silkscreen, it’s called the Raspberry Pi Model B+, and while we have no idea what the chipset is, the layout and peripherals look pretty cool.

From the looks of it, this new board features four USB ports, a new, 40-pin GPIO header, and more screw holes that will allow you to secure this to anything. The analog video out is gone, and the SD card connector – a weak point of the original design – might be replaced with a microSD connector. Oh, every Raspi case that has ever been made? They won’t work.

Without booting this Raspi B+ there’s no way of knowing what the chipset is on this new board. The smart money is on the entire SOC being the same: basically, what you’re looking at is the same as a Raspberry Pi Model B, only with a few more ports.

There is no clue when these improved Raspis will be available, but the word “soon™” will probably appear on the Raspberry Pi blog shortly.

Thanks [John] for the tip.

EDIT: [feuerrot] is smarter than me and mirrored all the images in an imgur album.

 

Easily Turn Your Raspberry Pi into an FM Transmitter

RasPi FM Transmitter

Have you ever wanted to be your own radio DJ? [Kevin] has made it easier than ever with his Raspberry Pi FM Transmitter program. The program is written in C. [Kevin] has made source code is available along with a compiled binary.

PIFM allows you to load up any audio file and specify a frequency to transmit. The program will then use PWM to modulate the audio sample through the Pi’s GPIO4 pin. [Kevin] claims that the RasPi alone will only transmit around a 10 cm distance. He says that making a simple antenna out of a jumper wire can increase the distance to around 100 meters. All you have to do is hook up the wire to the GPIO4 pin to drastically increase the range.

The legality of such a transmitter will vary from place to place, so be sure to check out your local regulations before you go transmitting audio on regulated frequencies. If this kind of thing is interesting to you, you may want to investigate ham radio. It’s not all Morse code and old fogies. Some people claim it’s a hacker’s paradise.

[via Reddit]

How to Upgrade Jasper’s Voice Recognition with AT&T’s Speech-to-Text API

Jarvis upgrade

Jasper is an open-source platform for developing always-on voice-controlled applications — you talk and your electronics listen! It’s designed to run on a Raspberry Pi. [Zach] has been playing around with it and wasn’t satisfied with Jasper’s built-in speech-to-text recognition system. He decided to take the advice of the Jasper development team and modify the system to use AT&T’s speech-to-text engine.

The built-in system works, but it has limitations. Mainly, you have to specify exactly which keywords you want Jasper to look out for. This can be problematic if you aren’t sure what the user is going to say. It can also cause problems when there are many possibilities of what the user might say. For example if the user is going to say a number between one and one hundred, you don’t want to have to type out all one hundred numbers into the voice recognition system in order to make it work.

The Jasper FAQ does recommend using the AT&T’s speech-to-text engine in this situation but this has its own downsides. You are limited to only one request per second and it’s also slower to recognize the speech. [Zach] was just fine with these restrictions but he couldn’t find much information online about how to modify Jasper to make the AT&T engine work. Now that he’s gotten it functional, he shared his work to make it easier for others.

The modification first requires that you have at AT&T developer account. Once that’s setup, you need to make some changes to Jasper’s mic.py module. That’s the only part of Jasper’s core that must be changed, and it’s only a few lines of code. Outside of that, there are a couple of other Python scripts that need to be added. We won’t go into the finer details here since [Zach] goes into great detail on his own page, including the complete scripts. If you are interested in using the AT&T module with your Jasper installation, be sure to check out [Zach's] work. He will likely save you a lot of time.

 

Controlling RC Toys With The Raspi

signal

An interesting trick you can do with a a fast CPU and a GPIO pin mapped directly to memory is an FM transmitter. Just toggle a pin on and off fast enough, and you have a crude and kludgy transmitter. [Brandon] saw a few builds that turned a Raspberry Pi into an FM radio transmitter and realized a lot of toy remote control cars use a frequency in the same range a Pi can transmit at. It’s not much of a leap to realize the Pi can control these remote control cars using only a length of wire attached to a GPIO pin.

The original hack that turned a Pi GPIO pin into an FM transmitter mapped a GPIO pin to memory, cycled through that memory at about 100 MHz, and added a fractional divider to slightly adjust the frequency, turning it into an FM transmitter. Cheap RC cars usually listen for radio signals at 27 and 49 MHz. It doesn’t take much to realize commanding RC cars with a Pi is possible.

The only problem with this idea is that most RC cars use pulse modulation. For an RC transmitter to send the command for ‘forward’, a synchronization pulse is sent, then a series of pulses and pauses. The frequency doesn’t change at all, something the originally FM code doesn’t do. [Brandon] realized that if he just moved the frequency up to something the RC car wasn’t listening to, that would register as a zero.

All that was left was to figure out the command codes for his RC truck. For this, [Brandon] decided brute force would be the best option. Armed with a script and a webcam, he cycled through all possible combinations until the webcam detected a moving truck. Subtlety brilliant, if you ask us. Of course more complex commands required an oscilloscope, but now [Brandon] has a git full of all the code to control a cheap RC car with a Pi.

Follow

Get every new post delivered to your Inbox.

Join 94,561 other followers