The Firmware, both the receiver and the transmitter (remote computer) has been developed using the CCS Compiler,, which uses the C# programming language, also used in Windows applications by example. It is not free software, being one of their weak points...
Otherwise, it's a traditional standard C, and knowing well the device with which we work, we can draw the match without too many complications.
As you can imagine, the program, both on transmitter and receiver is based on good management of interruptions that generates the RF module. In addition, the transmitter used a Timer to determine when it applies to take measurements.
Because of my great interest by the practice of the noble art of falconry with my hawks, I decided a while ago to carry out the design of a falconry telemetry system via 433 MHz radio link that have at least altimeter and GPS in real time, not forgetting that the emiter must be carried by the bird and, therefore, size and weight are very limited.
Below will explain, without going into too much detail, how I have approached this very interesting digital system design. It should be noted that this project was conducted in 2012-2013, dates that even commonly used microcontrollers from Microchip "of a lifetime", that I keep warm from memories of their use in various practices of subjects that curse in my engineering studies.
Therefore, we can say that it's a design "pre-Arduino", where, without going any further, compilers are not "open source" and doesn't exist inexpensive development boards, much less "bootloader" that enables programming via usb without the need for any additional programming hardware. Moreover, these MCUs have nothing to envy to those used in the Arduino (Atmel) environment.
The system consists of two physically separated parts: transmitter and receiver. Both are digital systems based on microcontrollers from Microchip, with the common denominator of having been implemented somewhat precarious so far as hardware is concerned, without PCB or anything like.
Devices used are, in particular, 18F14K50 in the emiter and 18F2550 for the receiver, being noteworthy that both have a very reduced consumption and the ability of USB communication without the need for dedicated hardware.
433 MHz communication module RFM23B of Hope Electronics is carried out for both the transmitter and receiver. It's a "transceiver", i.e., it is able to both emit and receive data and, although it seems that emiter must be unically able to emit and receiver to receive, the set has been designed so that it allows a fully bi-directional communication between both modules, with the intention of facilitating a more flexible configuration and control system. MCU comunication is implemented via SPI Bus, which requires several IO pins, and also have a pin (nIRQ) request for interruption that allows a very efficient management by the MCU code.
To obtain measurements of barometric pressure, temperature and geolocation have been used:
+HP03 - digital I2C communication precision Barometer/Thermometer module
+Fastrax UC430 - minimal GPS w/ antenna. NMEA and Sirf binary communication.
Likewise, in the emiter, has been used an external EEPROM memory (not remember model), also with I2C communication, aiming to save both settings and in flight data (black box?).
On the other hand, centering on the receiver, which, although it has an alphanumeric 16 x 2 LCD display and a four button keypad as a rudimentary user interface, it has added a Bluetooth module to provide communication with Android systems, which display in a way more friendly realtime navigation data, including geolocation in Google Maps.
To this end, I have written an Android application that also allows you to add personal notes by voice recognition to a archive that condenses all the information along with the adquiring date and time. This application has been developed using the AppInventor online software, published by the famous M.I.T. or Massachussetts Institute of Technology.
Copyright © All Rights Reserved