- Written by Akiba
It's been approximately one year since the Chibi wireless stack has been released and its been quite an adventure. The stack has been pounded on by quite a few users and they've provided some excellent feedback and recommendations. At version 0.90, the stack is basically stable with this release incorporating some new features and bug fixes.
I'd also like to announce the first release of chibiArduino, the Arduino port of the Chibi stack. Chibi was originally designed for hardware hackers and the open source hardware community as an easy way to add wireless communications to their designs. The dominant platform in the community is the Arduino and so it was natural to port the software to it. I only wish I had done it sooner.
The chibiArduino project has the same code base with minor modifications specific to the Arduino environment. The cmdArduino code was integrated into chibiArduino since a command line is a very useful tool and used quite often when dealing with wireless. There are also two additional files at the toplevel that serve as a wrapper to the main Chibi functions and are needed by the Arduino environment. I decided to keep the projects separate so that it was clear which code was specific to the Arduino. To use the chibiArduino code, it just requires unzipping the source files inside the "/Arduino-XXXX/libraries" directory where the Arduino-XXXX stands for the version number of the Arduino build.
Here are the main new features and bug fix:
- Written by Akiba
Just a quick note that Chibi v0.85 is released. The main purpose for this release is to add support for the Atmel ATXMega MCU family. There are other minor changes that were also added. The EEPROM driver was moved to the MCU specific directories since the ATXMega has different EEPROM access method than the standard AVR series. The standard AVR chips have EEPROM libraries that are supported by avrlibc which is not the case for the ATXMega. Along with that, there were some minor cosmetic changes to the demo file to simplify things. It started feeling like it was getting cluttered.
To switch between the different MCUs, just open up the Makefile and set the MCU variable to the processor of your choice. To select the radio, do the same for the RADIO variable.
Here's the change list:
- Added ATXMega support for 2.4 GHz and 900 MHz radios
- Fixed compilation issue on Linux where case sensitivity caused problem with makefile
- Changed usec_delay function in ATXMega radio drivers to be based on stated MCU frequency F_CPU. There may still be some issues since the clock frequency is changeable on the fly, however old drivers assumed 8 MHz clock
- Added support for command line via UART rather than USB for ATXMega boards since they use FTDI USB serial bridge to UART
- Moved chb_eeprom.c/h to MCU specific directories since they are MCU specific
- Removed "dump" command for register dump
- Removed "pwr" command to set power. This is just demo so default should be okay. API call is still in driver so this can be implemented as needed by the user. Just didnt want to make things too complicated.
You can pick up the source code from the project page.
- Written by Akiba
Just a quick word to let you know that the Chibi stack has been updated to v0.81. This is just a minor update to add support for the TI CC1190 RF front end and coincides with the release of the AT86RF212-CC1190 board . If you've been interested in what it'd be like to match the AT86RF212 with the TI CC1190, you can check it out at the store. The schematics, layout, and BOM can be found inside the datasheet as usual. And in case you're wondering...the range is pretty sick :)
I made one other modification to the Chibi stack which was to move the command table into the main file as well. It used to be in a separate file so when you added commands to the shell, you had to add the functional code in one file, the prototype in the header, and then the command in a separate file. It was a big hassle so now adding a command can be all done within one file. Part of the reason I changed this is that I'm preparing a tutorial on Chibi and when I heard myself trying to explain it, it made me want to cry. Anyways, that mod was mostly just to simplify things.
Guess that's about it for now. Back to bringing up the other boards and writing tutorials...Hi-ho, Hi-ho...
- Written by Akiba
I know some people are probably wondering if I'm still alive. I've been in isolation-mode trying to get the shop up (yes...still). It's probably been one of the toughest things I've ever done in my life. However I did have some time to work on the Chibi stack and cleared up a few things that were bothering me. One of them was some nasty frame loss when multiple frames come in closely spaced. This would occur if you did something like broadcast a request to multiple nodes and they all returned a response simultaneously. Only one of those frames would get through and the rest would get lost. The current release fixes that so you should be able to receive multiple frames simultaneously with no loss up to the maximum size of the receive buffer which you can configure in the code
I added version numbering rather than just using release dates for reference. Version numbers are much more intuitive. You'll also find support for the ATMega32U4/AT86RF212 combination. I'm actually making a Chibi 900MHz board and needed this for testing. I'm really enjoying working with 900 MHz because the range is better and there is less attenuation through objects. However I'm still a fan of 2.4 GHz just for the variety of available chips, antennas, front ends, and modules to interoperate with.
You probably won't hear much from me until the shop is up because I really need to get that out of the way so I can continue with all of my other projects. Multi-tasking that with everything else was just not working. So much has gone on in the past few months that I do have quite a bit of material to post and topics to talk about. Hopefully that should all fall in place after things settle down. In the meantime, check out the latest Chibi software: