UPDATE May 15 2013: Split is now available for sale on our website
We’ve been slowly working away on an Arduino based wireless module called “Split” and just got the first real prototypes assembled and working over the last week. The module is based around a Atmega328P and a RFM22B wireless module, so it is kind of like a cross between a Arduino Pro Mini and a RFM22B breadout board.
Specs and Features:
Operating voltage: 3.3V
Processor: Atmega328P with Arduino bootloader
RF Frequency Range: 433MHz, 868MHz, or 915MHz ISM band (depending on version)
RF data rate: adjustable from 0.123 to 256kbps
RF output power: adjustable from 1 dBm to 20 dBm
RF receive sensitivity: -121 dBm
Long range up to several Km with proper antennas
On board 3.3V regulator
PCB Size: 20mm x 38mm
All processor IO pins are brought out to header pins
Programmed with FTDI Pro
A user LED and button connected to IO pins
Slide switch to allow the DTR signal from the FTDI Pro to be directed to an IO pin to allow programming of a remote Arduino processor
Split RF module connected to a FTDI Pro
There are three main ways we envisioned Split being used:
As a standalone processor with wireless capability.
As a generic wireless UART link with remote DTR control to allow communicating with and programming of a Arduino processor attached to the remote Split module.
As a wireless IO link. Input pins on one end are mapped to output pins on the other end and vice versa.
We’ve done some initial testing with the RF22 library from open.com.au and it seems to work so that covers #1, and we are in the process of writing firmware for #2 and #3.
We are pretty excited about the long range wireless capabilities Split will give to a lot of projects.
Split RF module connected to the Mongoose IMU
If you are interested in this project, leave some feedback or a comment. Once we know how much interest there is, we can make some better plans for a release date.
The first version of the Mongoose AHRS (Attitude and Heading Reference System) firmware and the PC GUI (with VB.net source code) are both working and are available for download on the website. There is still a bit of work that needs to be done to make sure the soft iron compensation is working, but for the most part it is working pretty well.
Mongoose – the 9 DOF IMU with barometric sensor, and lots of other cool features – is almost ready for launch!!
We based our design on the popular Sparkfun Razor, updated the magnetometer, added a barometric pressure sensor, and improved utility and usability with a few other design features.
We’ve also taken the AHRS firmware written by Jordi Munoz and updated it to support the new gyro, magnetometer and the addition of the barometric pressure sensor. Also, we have a Windows GUI for showing all the sensor data as well as attitude and heading in real time.
In a previous post I mentioned how I thought found a bug in the operation of the RTC and that it was fixed by a seemingly unrelated change to the RTC prescale divider. Well, I was right it wasn’t related to the prescaler at all.
So I just spent about a week debugging a USB problem on a project using a LPC2148. I was finding that the USB would randomly connect and disconnect when plugged into the PC. Sometimes it would stay connected for 10 seconds before disconnecting, sometimes it would stay connected for hours with no problem. I spent several days looking for firmware bugs and checking the USB signal quality, but everything looked good. With the disconnect time being random I assumed it had to be a hardware problem. It turned out to be a problem with both hardware and software. Apart from the D+ and D- pins, the LPC2148 has two other IO pins associated with the USB peripheral: Connect (PO.31) and Vbus (P0.23). Connect is an output that is used to turn on the pullup to start enumeration. Vbus in an input to detect if USB power is present. On my PCB, the Vbus pin was not connected to anything (that was the hardware problem), but was configured as Vbus instead of P0.23 (that was the firmware problem). It looks like the chip is hardwired so that if you have the “Vbus” pin enabled, the logic level on that pin controls the “Connect” pin. So in my case the floating Vbus pin was randomly going high and low causing the USB to connect and disconnect. Configuring the Vbus pin as a GPIO pin instead fixed the problem.
What kind of bugs me about this is that this behavour isn’t really documented in the user manual. Oh well. It is fixed and the solution was simple. I just wish it didn’t take me so long to find.
I’ve been having a problem with the RTC and power down mode on a project using the LPC2148. I am using EINT3/INTWAKE and the RTC alarm as sources to wake the processor from power down and I find that occasionally, when I’m in power down mode, the RTC peripheral seems to lock up and neither the alarm or EINT3 are able to wake the processor . The only way to recover is to do a hard reset.
Searching for a solution, I found this post http://www.embeddedrelated.com/groups/lpc2000/show/20665.php
that said to setup the PREINT and PREFRAC even if you are using an external RTC crystal.
I’ve just tried this on a few pieces of hardware that were consistently locking up in power down and it seems to be working so far. When I switch back and forth between firmware with and without those two lines it seems to follow that if I don’t set up PREINT and PREFRAC it locks up. If this is in fact the solution I would really like to know why this works since it makes no sense.
Electrical Engineering, Arduino programming, PCB design, 3D printing …