Lithium ion batteries are becoming more and more common these days, but some of the larger capacity batteries can still carry a pretty hefty price tag. After finding Acer’s motherboard schematics online and doing a little reverse-engineering, [Tiziano] has found a way to reuse batteries from his dead laptop, not only saving the batteries from the landfill but also cutting costs on future projects.
These types of batteries have been used for many things in the past, but what makes this project different is that [Tiziano] is able to monitor the status of the batteries and charge them using I2C with an Arduino and a separate power supply, freeing the batteries from the bonds of the now-useless laptop.
With this level of communication between the microcontroller and the battery pack, there is little chance of the batteries catching on fire when they’re used in another project. Since the Arduino can also monitor the current amount of charge in the batteries, there is also a reduced risk that they will be damaged from under- or over-charging.
This wasn’t just as simple as hooking up the positive and negative leads of a power supply to the battery. [Tiziano] also had to model the internal resistance of the motherboard that the battery expects to see, and get the supply voltage just right so the battery’s safety protocols wouldn’t kick in to prevent them from charging. After a few other hurdles were jumped, [Tiziano] now has a large capacity lithium ion battery at his disposal for any future projects.
Tektronix’s MSO2000 line of oscilloscopes are great tools, and with the addition of a few ‘application modules’, can do some pretty interesting tasks: decoding serial protocols, embedded protocols like I2C and SPI, and automotive protocols like CAN and LIN. While testing out his MSO2012B, [jm] really liked the (limited time) demo of the I2C decoder, but figured it wasn’t worth the $500 price the application module sells for. No matter, because it’s just some data on a cheap 24c08 EEPROM, and with a little bit of PCB design <<removed because of DMCA takedown>>
The application module Tektronix are selling is simply just a small EEPROM loaded up with an <<removed because of DMCA takedown>>. By writing this value to a $0.25 EEPROM, [jm] can enable two applications. The only problem was getting his scope to read the EEPROM: a problem easily solved with a custom board.
The board [jm] designed <<removed because of DMCA takedown>>, with the only additional components needed being an EEPROM, a set of contacts for reading a SIM card, and a little bit of plastic glued onto the back of the board for proper spacing.
UPDATE: Learn about the DMCA Takedown Notice that prompted this post to be altered: http://hackaday.com/2014/08/05/hardware-security-and-a-dmca-takedown-notice/
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.
Continue reading “Adding GPIOs To The Raspberry Pi With The Camera Interface”
VGA, DVI, and HDMI ports use Display Data Channel (DDC) to communicate with connected displays. This allows displays to be plug and play. However, DDC is based on I2C, which is used in all kinds of electronics. To take advantage of this I2C port on nearly every computer, [Josef] built a VGA to I2C breakout.
This breakout is based on an older article about building a $0.25 I2C adapter. This adapter hijacks specific lines from the video port, and convinces the kernel it’s a standard I2C device. Once this is done, applications such as i2c-tools can be used to interact with the port.
[Josef] decided to go for overkill with this project. By putting an ATmega328 on the board, control for GPIOs and LEDs could be added. Level shifters for I2C were added so it can be used with lower voltage devices. The end product is an I2C adapter, GPIOs, and LEDs that can be controlled directly from the Linux kernel through an unused video port.
NFC tags are cool, but programming them to do your bidding – whether unlocking your computer, making an Arduino vending machine, or a smart home application – requires using an NFC device to program the tag over the air. An NFC tag programmable with any ‘ol microcontroller would certainly have some interesting applications, and Elecfreaks’ DNFC tag is just the thing to test out these ideas.
While NFC tags are reprogrammable, reprogramming them requires an NFC controller, be that through a dedicated hardware, a phone, or an Arduino shield. The DNFC tag is reprogrammable with a microcontroller with an I2C interface thanks to TI’s RF430CL330H dynamic NFC transponder IC. It still does everything you would expect from a NFC tag – MIFARE compatible. NDEF reading and writing, and everything else – but you can program it through an Arduino, Pi, or any other board with an I2C interface.
TI has an app note on using the chip inside the DNFC for automatic Bluetooth pairing, and Elecfreaks themselves have a few use cases in mind that include putting WiFi credentials on an Arduino board without putting the SSID in code and other Internet of Things™ applications. We’re thinking this is one of those devices that is eminently useful, but for something we just can’t think of off the top of your head. If you’ve got an idea for how to use an I2C programmable NFC tag, drop a note in the comments.
Elecfreaks is doing an Indiegogo campaign for the DNFC, $13 for one. I picked one up, but it’s flexible funding, so buy it or don’t. I don’t care.
Summer is upon us. The Lightgame Project is a multiplayer reaction time based game built around the Arduino. It’s a perfect rainy day project for those restless kids (and adults!). Designed by two undergraduate students [Efstathios] and [Thodoris] for a semester long project, all the hard work has already been done for you.
There are tons of reasons we love games that you can build yourself. For one, it’s an amazing way to get children interested in hobby electronics, making, and hacking. Especially when they can play the game with (and show off to) their friends. Another reason is that it is a perfect way to share your project with friends and family, showcasing what you have been learning. The game is based on your reaction time and whether or not you press your button when another players color is shown. The project is built around two Arduinos connected via I2C. The master handles the mechanics of the game, while the slave handles the TFT LCD and playing music through a buzzer.
I2C is a great communication protocol to be familiar with and this is a great project to give it a try. [Efstathios] and [Thodoris] did a great job writing up their post, plus they included all the code and schematics needed to build your own. It would be great to see more university professors foster open source hardware and software with their students. A special thanks goes out to [Dr. Dasygenis] for submitting his student’s work to us!
Continue reading “The Lightgame Project: A Multiplayer Arduino Game”
TI’s MSP430 chips are rather interesting – they’re low power, very capable, and available for under a dollar in most cases. Some of these chips, though, don’t have native SPI or I2C interfaces; instead, everything is done through a USI, or Universal Serial Interface module. [Jan] found the stock I2C USI module was a little rough around the edges, so he created his own.
[Jan] found the TI example code for using the USI as an I2C device overly complicated and something that an intern whipped up in a week and was never touched again. In response to this, he created a much, much simpler USI/I2C module that’s actually readable. It’s available over on the GitHub if you want to grab it for yourself.
Compared to the TI code, [Jan]’s library is dead simple. There are only two functions, one for initialization, and another for sending and receiving. Easy, small, and it works. Can’t do much better than that.