In the spirit of “Open-Source Hardware“, I have just posted the bill of materials (BOM) for the Arduemetry and XBee GPS PCB assemblies. This information, along with the schematics, Eagle CAD files, Gerber files, and sample firmware, can be found on the main Arduemetry Project Page. When I went to assemble the V2.0 board, I realized that I had to order a few more components since I was missing some. I figured since I was updating the BOM for myself, I might as well share it. Please provide any comments if errors or omissions are found.
I did not include any pricing information because it can be volatile and will also depend on volume price breaks. However, I will say that the entire V2.0 assembly (bare fabricated PCB and soldered components) costs about $40 – this would be cheaper, probably by 20%, if I were able to take advantage of high quantity component price breaks. The XBee GPS module comes out to about the same cost with the receiver being 95% of the total. Once I get everything built and tested, and if there is enough interest, I might be inclined to offer these boards for sale and take pre-orders so I could buy components in bulk to reduce cost/price. Let me know if you want one! You could make a really nice (and really small!) high-altitude balloon tracker payload with these two assemblies plus a GPS antenna ($10), the MX146LV radio ($70), a LiPo battery (<$10), and a 144MHz antenna ($10) – total ~$180.
My BatchPCB order for the V2.0 Arduemetry boards as well as my new XBee GPS module has arrived. Take a look at the pictures below. I quickly soldered up the GPS module and it looks and works great. I think it gets better reception now that it is on its own board with a good ground plane. Definitely seems better than before when I had just soldered pins to the module and plugged it into a socket on my V1.0 board. Now I just need to find the time to assemble the V2.0 board and test it out. After that’s up and running I’ll have to think of what to do next with this project – possibly make some more modules (sensors, antenna connectors, etc.) with the XBee footprint. Any suggestions?
XBee GPS Module PCBs
XBee GPS Module Bottom
XBee GPS Module Top
Arduemetry V2.0 PCBs
One of the goals of my Arduemetry project is to use it as a miniature APRS tracker. My original concept of accomplishing this was to pass the NMEA serial GPS data through the ATmega firmware and into a separate tracker module (like an OT1+) which would modulate and control the radio (SRB MX146LV) module.
My biggest problem was with the available tracker modules. All of them tend to operate at 5V. I am determined to use my ATmega chip at 3.3V to simplify interfacing to things like the GPS module, uSD card, XBee radio, and I2C devices such as the MX146. After searching and searching I finally stumbled upon a solution. I found this project website from someone who has similar goals: http://trackuino.blogspot.com.
His take on things is to do all of the GPS parsing, APRS packet formation, radio control, and modem output in the ATmega328 chip. He even interfaced with the same radio module as I was trying to do! Needless to say I was excited because I could now eliminate having a separate tracker module and just do it all in my main MCU.
I had already built in controls for I2C and radio ready outputs, so I just hooked up PWM modulation and PTT outputs to the radio socket and I was ready to go. After some modifications to the Trackuino firmware to have it work in the .pde/Arduino IDE format (thanks Javi!), I uploaded it to my Arduemetry V1.0 board and was sending valid APRS packets out to my Kenwood TH-D7. Awesome! It still needs some tweaks to solve some interrupt and timer issues between the modem code and my NewSoftSerial GPS interface (which is already addressed in my V2.0 design), but it was great to see this all working together. It’s also only using ~30% of the code space so I think I should still have room to do GPS and other sensor logging to the uSD card at the same time.
I’m currently working on a revision of the PCB to correct issues with the first version, notably
- Lack of RC circuit on RESET/DTR line which prevents the Arduino IDE from properly resetting the MCU and loading new firmware. I was able to get around this with the V1.0 board by adding a resistor on the back side and putting a capacitor in series with the reset pin going to the FTDI adapter.
- Changing the sockets for the GPS module. I had originally planned on just soldering pin headers onto the Inventeksys GPS module itself, but they were a weird spacing (1.9mm) and it didn’t work out so well. The new design will replace the 10-pin 2mm headers with standard size XBee socket. This will allow you to use an XBee or a (to be designed) GPS module board in either socket, one with hardware serial and one with software serial.
- Adding LED(s) for GPS and XBee link status
- Connecting GPS power control to MCU to enable power-saving functions
- Other minor improvements including better RF coil for GPS antenna to improve sensitivity. Previous one had a low Q value at the L1 frequency and was self-resonant below that frequency.