Learn To Translate IR Codes And Retransmit Using Arduino

[Dave Jones] from EEVBlog.com takes “Arduino fan boys” off the garden path getting down and dirty with different methods to capture, evaluate and retransmit IR remote control codes. Capturing and reproducing IR remote control codes is nothing new, however, [Dave] carves his own roads and steers us around some “traps for young players” along the way.

[Dave] needed a countdown timer that could remotely start and stop recording on his Cannon video camera, which he did with simplicity in a previous EEVBlog post using a commercial learning remote control unit. The fans demanded better so he delivered with this excellent tutorial capturing IR codes on his oscilloscope from an IR decoder (yellow trace) as well as using an IR photo transistor (blue trace) which showed the code inclusive of 38 KHz carrier frequency. Either capture method could easily be used to examine the transmitted code. The second lesson learned from the captured waveforms was the type of code modulation being used. [Dave’s] remote transmitted NEC (Japanese) pulse length encoding — which can be assertaind by referencing the Infrared Remote Control Techniques (PDF). Knowing the encoding methodology it was trivial to manually translate the bits for later use in an Arduino transmitter sketch. We find it amazing how simple [Dave] makes the process seem, even choosing to write his own sketch to reproduce and transmit the IR codes and carrier instead of taking the easy road looking for existing libraries.

A real gem of knowledge in the video was when it didn’t work! We get to follow along as [Dave] stumbles before using a Saleae Logic analyzer to see that his transmitter was off frequency even though the math in his sketch seemed correct. Realizing the digital write routine was causing a slowdown he fudged his math to make the needed frequency correction. Sure, he could have removed the performance glitch by writing some custom port control but logic dictates using the fastest and simplest solution when hacking a one-off solution.

[Dave’s] video and links to source code after the break.

Continue reading “Learn To Translate IR Codes And Retransmit Using Arduino”

Wi-Fi Enabled Garage Door Opener

Normally, internet-controlled household devices are a cobbled together mashup of parts. This is great for a prototype, but if you’re looking for something that will last a decade in your garage, you’ll need something a little cleaner and more robust. [Phil]’s Internet-enabled garage door opener is just that, replete with a custom-made enclosure for his Arduino powered system.

The main hardware for [Phil]’s build is a Freetronix EtherTen, an Arduino clone with a built-in Ethernet interface. Aside from that, the electronics are simple: a relay, transistor, and diode provide the connection from the EtherTen to the garage door opener.

The software for this setup consists of a main file that sets up the web page, the serial monitor, and loops through the main program. There are a bunch of classes for initializing the web page, writing passwords to the EEPROM, activating the door, and setting the MAC and IP addresses.

Opening the door with this remote is a snap: with any WiFi enabled smartphone or tablet, [Phil] only needs to log onto his network, surf on over to the page hosted on the Arduino, and enter a password. From there, opening the door is just a press of a button. Passwords and other configuration settings cane be entered with MegunoLink. This software also includes a serial monitor to log who opened the door and when.

It’s an interesting and compact system, and handy to boot. You might sometimes forget your garage door opener, but we’re thinking if you ever find yourself without your phone, a closed garage door is the least of your problems.

Automatic Bluetooth Module Programmer

automatic-bluetooth-programming

Before we dive in don’t be confused by the title. This doesn’t flash firmware to the device. But it does automate the process of setting up the Bluetooth to serial module for use in your projects.

We’re often confused by the lack of a standard way of describing these inexpensive modules. We would look at this can call it an HC-05, but we’re not sure if that’s right or not. [James Daniel] calls it a JY-MCU board. If you have a handle on the differences (or lack of) please let us know in the comments. Either way we know that these boards can be frustrating to work with. They can be found with a wide variety of different firmwares, which can make the configuration process a bit different for each.

[James’] solution connects the device to an Arduino running a sketch that he wrote. Connect the device, launch the terminal monitor in the Arduino IDE, then give it your desired settings. The sketch will poll the Bluetooth module to see what speed it is set to run at. It will then establish which firmware version the board is running, displaying this info in the terminal. It then uses that information to program the board with your desired settings.

In this case [James] is using one of the modules to drive his 3D printer without being tethered to his laptop.

Continue reading “Automatic Bluetooth Module Programmer”

Sending Data Over Bluetooth Low Energy With A Cheap NRF24L01+ Module

nRF24L01+ modules like the one shown above are a great way to send data wirelessly between your projects. They can be found on many websites for less than $1.50 a piece and many libraries exist for them. After having thoroughly looked at the Bluetooth Low Energy (BLE) specifications, [Dimitry] managed to find a way to broadcast BLE data with an nRF24L01+.

Luckily enough, BLE and nRF24L01+ data packets have the same preambles. However, the latter can’t send more than 32 bytes in a packet and can’t hop between frequencies as fast as the BLE specification wants. [Dimitry] found the solution when he discovered that he could send unsolicited advertisements on three specific channels. In the end, considering the 32 bytes the nRF24L01+ can send, you’ll need to use 3 bytes for the CRC, 2 for the packet header, 6 for the MAC address and 5 for devices attributes. This leaves us with 16 bytes of pure data or 14 bytes to split between data and name if you want your project to have one.

Modified E-ZPass Detects Reads Far From Toll Booths

Def Con speaker [pukingmonkey] has spent quite a bit of time studying methods government and law enforcement use to track private citizens’ vehicles on the roads. One of the major tracking methods is E-ZPass, an electronic toll collection system used in several states around the country. [pukingmonkey] cracked open his E-ZPass tag to find a relatively basic circuit. In his DEF CON presentation (PDF), he notes you shouldn’t do this to your own tag, as tags are legally not the property of the user.

The tag uses a 3.6 volt long life battery to operate. When idle, the tag only draws 8 microamps. During reads, current draw jumps to 0.3 mA. Armed with this information, it was relatively simple to add a current detecting circuit that outputs a pulse on tag reads. Pulses are then fed into a toy cow, which lights up and “Moos” on each read.

Continue reading “Modified E-ZPass Detects Reads Far From Toll Booths”

DIY Electricity And Internet For Burning Man

bmPowerInet

Despite this being [Kenneth Finnegan’s] first Burning Man, the guy came prepared and stayed connected by setting up a beefy electricity supply and a faint yet functional internet connection. If you saw [Kenneth’s] Burning Man slideshow, you know that the desert is but a mild deterrent against power, water, and even temporary runways.

He borrowed a 20V 100W solar panel from Cal Poly and picked up a bargain-price TSMT-20A solar charge controller off eBay. The controller babysits the batteries by preventing both overcharging and over-discharging. The batteries—two Trojan-105 220Ah 6V behemoths—came limping out of a scissor lift on their last legs of life: a high internal resistance ruled out large current draws. Fortunately, the power demands were low, as the majority of devices were 12VDC or USB. [Kenneth] also had conveniently built this USB power strip earlier in the year, which he brought along to step down to 5VDC for USB charging.

Internet in the desert, however, was less reliable. A small team provides a microwave link from civilization every summer, which is shared via open access points in 3 different camps. [Kenneth] pointed his Ubiquiti NanoStation at the nearest one, which provided a host of inconvenient quirks and top speeds of 2-20kBps: enough, at least, to check emails.

Bluetooth Low Energy Weather Lamp

bluetooth_low_energy_ble_weather_lamp

This is a well-executed proof of concept which [Aaron Jeromin] threw together in a couple of hours. This lamp hosts a Bluetooth Low Energy weather display. The project was a way for him to get used to using the BLE module. But to make the most out of that hardware this should really be refined into an actual low energy circuit. We do think the timing is perfect to feature this project since we just looked at a BLE primer yesterday.

He’s using a BLE Mini board from RedBearLab. It uses a Texas Instruments CC2540 SoC. We’d love to see a follow-up that does away with the Arduino in lieu of code running on the TI chip. But we would have done the same thing (use the uC we were most familiar with) when testing the BLE board out for the first time. It gets weather data from an iPhone. The forecast is projected as one of three icons using an LED bulb and a stencil which is positioned by a hobby servo.

Other inanimate objects that can tell you if it’s storming include this color-coded umbrella stand.

Continue reading “Bluetooth Low Energy Weather Lamp”