|
Written by Akiba
|
|
Monday, 31 October 2011 |
|
It's been a while since I posted anything and that deserves another post just to talk about everything that happened in the last 8 months since the March earthquake and tsunami here in Japan. I'm a little bit tired of heavy topics and serious projects so I thought I'd put together a little something that's kind of fun and also timely. Now that we're moving into the holiday season, we're about to start seeing the hard core Christmas people setting up the elaborate light displays. The equipment to switch all the lighting channels and sequence everything is usually a bit costly but it doesn't have to be. If you're familiar with the Arduino environment and willing to put in a bit of elbow grease, blinging out your lawn is just a couple of mouse clicks away :) I put this three part video tutorial together on how to use the Arduino platform to decode the DMX protocol. The DMX protocol is a standard protocol for stage lighting displays and it happens to be supported by a nice freeware light sequencer called Vixen. In the first part, I go over the DMX-512 protocol and the Arduino source code to decode it. In the second part, I show how to configure a lighting sequence with Vixen, some hardware implementations, and the whole system working together. And in the final part, I show how some simple changes to the code can enable you to control your lights wirelessly. |
|
Read more...
|
|
|
Written by Akiba
|
|
Wednesday, 29 December 2010 |
|
One of the most powerful tools to have when doing any type of design that involves communication protocols is a protocol analyzer. It allows you to see exactly what the communicating devices are seeing which is very useful for troubleshooting many types of problems that might come up. This is especially important for wireless communications because this is often the only way to see what type of data is going over the air. It also allows the user to see if there are any rogue frames, check for breaches of the communication protocol, analyze traffic, or reverse engineer a proprietary protocol. And of course, it’s extremely useful for learning about how a protocol operates and behaves in real-life.  |
|
Read more...
|
|
|
Written by Akiba
|
|
Friday, 23 July 2010 |
|
The Arduino Command Line Interface, aka CmdArduino, is a simple shell that can be run on an Arduino. It's nothing fancy and its main purpose is to allow users to easily call their functions on a running Arduino via a simple serial terminal. It also allows users to pass in arguments from the command line into the functions they wrote so they can easily toggle pins, set blinking speed, set pwm duty cycles, or whatever else might need command line user input. Using it is fairly simple and just requires unzipping the files into the "Arduino/libraries" sub-directory in the Arduino program folder. The following is a tutorial that goes into more detail about how to implement CmdArduino in a sketch and easily add user functions to the command table. |
|
Read more...
|
|
|
Written by Akiba
|
|
Tuesday, 06 July 2010 |
|
The ATXMega is an upgraded version of the popular AVR microcontroller from Atmel. It still contains the basic AVR core but has a huge amount of enhancements to both the core and the peripherals. Basically, you can think of it like an AVR on steroids…a whole lot of steroids. Switching from the ATMega to the ATXMega series is a bit overwhelming because there are so many new features and improvements. Consequently, there is also a lot of new documentation which shows how to use the new features and the old ones. Because of the potential register shock to people that try out the ATXMega, I decided to put together a library of the Atmel drivers and some example functions. And of course, all the functions are ported and tested. Some of the examples may seem trivial, but they’re not designed for evaluation purposes. Their real purpose is to serve as a reference on how to access and use the peripherals, now that the register set is different. |
|
Read more...
|
|
|
Written by Akiba
|
|
Wednesday, 28 April 2010 |
|
One of the reasons I chose to use AVR microcontrollers with integrated USB is because of the Atmel DFU bootloader. For those that don’t know, DFU stands for Device Firmware Update and is a standardized USB device class that was created specifically for updating firmware. Since the Atmel bootloader resides in a protected area of memory, bad or stalled firmware changes will not render a board useless, ie: bricked. The board will always be recoverable by putting it into bootload mode. Also, the only hardware required to update the firmware on a board is a USB cable so basically, no extra hardware is required. Since full-speed USB is used at 12 Mbps, the firmware downloads are also quite fast. Although these tutorials are written using the FreakLabs Chibi boards , they apply to any of the FreakLabs boards that uses an AVR with integrated USB or any AVR USB MCU that implements the hardware bootloader feature. |
|
Read more...
|
|
|