Tuesday, May 6, 2014

A Closer Look - Low Data Rate Transmitter

Here is the progression from breadboard to protoboard of the transmitter I mentioned in the last post. There are a couple of minor differences in layout between the two, given the protoboard is half the size, but the only obvious change is that I opted for a 3 pin connector for the status LED, instead of soldering it in. This leaves the option open to use a  Neopixel in the future - but probably only one, as I had to really trim back the code to get this stable on the Atmel Attiny 84 micro controller.

I've also used the Adafruit Perma-Protoboard for this. Yes, it's probably a whole dollar more for a board this size, but it's worth it. The mask makes it really clean and easy to work with, the through-holes are plated and not too small, and it's rigid and thick enough that you know it's as good as permanent.

Although this transmitter / Vex RC decoder isn't really needed as part of the operational rover plan, it's a handy first step in field testing by enabling simple remote controlled drives. I should be able to provide a demo video of both halves of the transmit/receive pairs range performance in the next few days. Long range isn't a requirement, however I need to know what kinds of limits I should be working within when directly driving the rover.

The original breadboard with transmitter module. Note that it's configured for software uploads via an Arduino-as-ISP, so there are a good many wires not needed for normal use.

The 433 Mhz transmitter module. There are four data pins, power and ground on a six pin connector. (Link to the original part source)

The protoboard version. The six pin connector at upper right is for the transmitter. There is a four pin socket connector for the I2C bus on the rover, and 3 pin socket for the Neopixel, a 3 pin header for the Vex Receiver (and 10k pull-up resistor),  and a spare 3 pin connector to a PWM capable pin on the Attiny 84 that was unused. 

I also added a 16 Mhz resonator, although the original instability / timing problem it was meant to address was likely due to poor memory management on my part, not bad timing caused by the internal 8 Mhz oscillator. There is also a 0.1 uF capacitor across the power and ground pins to clean up the supply for the Attiny.

A view showing the transmitter in place. It's connected via the 6 pin socket. There is (just) enough clearance on the left side over the resonator, and space above the 14 pin socket for the Atmel chip. The 3 pin Neopixel connector appears partially obscured by the edge of the transmitter; in fact there is no overlap, although fitting a connector here will be snug. For use while driving, especially over rough terrain, the board will have to be secured with additional support; perhaps as part of a 3D printed enclosure.

It's not bad for an evenings tinkering. There are a couple of things I would do differently, but as a proto board it's not really important, and it's unlikely I'd bother to do a PCB version, as the data rate is so slow. For the time investment compared to performance I should have used Synapse wireless modules, and I still might, once I can demonstrate that it's worthwhile to pursue.

No comments:

Post a Comment