It’s been a busy month. I’ve built and re-built the main board (leaving a soldered mess – I need to build a second one to clean it up). The CAN communications is working, and the main board is communicating with the external devices (FC301 2m tranceiver module w. opentracker packet radio modem, Siemens TC35 GSM, and a GTPA010 GPS). In addition, I have a 8 channel relay board, the geiger input, and an on-board temperature sensor attached using a one-wire protocol.
The modular plg in the center bottom is the programming plug for the Microchip ICD3 programmer. This allows for very fast software prototyping. Sure – I can emulate and single step the software before programming. However, with this many external devices being controlled by the software, I depend on being able to run the program ‘live’ and use a multimeter, scope, and protocol analyzer to troubleshoot the various components.
One of the most exiting aspects of this project (in my view) is the use of a CAN bus to communicate beween two CPU’s. CAN is not a super-fast way of doing networking. In a project like this, though, there is very little overhead from an OS, protocol headers, or anything else. The main CPU is running at 80 MHz, the display board at 32 MHz, and the bus speed is 250 kb/s. As it turns out, with everything going, the bus and CPU’s are mostly idle (!).
So, with the hardware mostly sorted, a whole range of possibilities present themselves. The software I have written so far will keep track of all APRS stations nearby and display them on a little radar screen (picture above). I can text the unit from my cellphone and get a position- and radiation report back. The position, radiation and other status info is reported in the APRS telemetry stream. The unit also reports telemetry to a web-server I have, every time it connects to an open WLAN network. Using GSM, APRS, or commands from the web server, I can control the relay board. The display board gives me correlated data continuously, showing radiation, nearby APRS stations, WLAN networks, GSM coverage, etc. etc. I can configure alarms that are displayed and transmitted when triggered. The optocouple inputs (4 on the main board, two on the display) allows me to read inputs like the state of the car alarm, ignition level, and other car-related things. The display board even has a photo diode that regulates the display brightness via the PIC18 A/D converter. This data is also part of the telemetry. My imagination is the limit, really.
I would welcome any questions, feedback and suggestions on this project – maybe it inspires similar projects?