Build a box
Cool. We can now send stuff to old pagers, but really, what use could this possibly serve? I thought it'd be nice to make a system that can be used to monitor my network at home, and warn me as soon as something important happens, like network issues or power loss. I've designed a small PCB that allows me to do exactly that.
- ATMega168 (you could probably fit the code in an 8 kbyte device like an ATMega88 if you cleaned up some of my mess)
- HLK-RM04 module for network connectivity
- Dual RJ45 for expandability (HLK-RM04 needs to be flashed with OpenWRT for that to work)
- Supercaps for sending messages to pagers when power fails (2x 2.7v 30F)
- Cheap eBay step-up converter
- Support for HopeRF SI4432 (1 Watt) based modules and eBay noname SI modules modules
- ISP header for debugging
- FTDI FT232RL for USB connectivity
Using the PHP classes in the library, it can send syslog messages to pagers. The AVR code does all of the POCSAG handling, and has triggers built-in for when the server fails to check in within some time, or when power fails. The HLK-RM04 is used in the factory default setting, as a pretty dumb tcp->serial converter. You could do all kinds of stuff on the HLK-RM04 though; it's a fairly powerful little thing running linux.
After designing the board I found out I made a mistake in connecting voltage-measuring line. I've connected the supercap output line directly to the AD converter input, but didn't connect anything to AVCC or VREF. Since the AVR is running on 3v3, a 5v line from the supercaps won't work very well in this configuration. A botch 1:10 voltage divider should be connected in between this trace, ideally with a small cap to stabilize everything out. The AVR's reference is set to the internal 1v8 bandgap, and the 5v line divided by 10 falls nicely in between this value. I made a fix for this in the current designs for the boards.
I've also left the 'TEST' pin on the FTDI floating. (Pin 26). It should be tied to ground, or it won't work properly. Fortunately, the pin next to it is ground, so dragging a little bit of solder over it will do the trick. The FTDI is there for debugging or directly driving the AVR, and is not strictly necessary. You can leave it out if you don't need it.
Also, not all RJ45 connectors are created equal. The HLK-RM04 module requires a module with integrated magnetics, or it won't work. The pinout for the connector needs to match too; some parts have a different pinout and may not work. Verify and double-check with the part in the schematic. It should be compatible with the cheap HR911105A sockets on eBay.
I ordered the boards from dirtypcbs.com. Very nice quality. Shipping takes some time though, but for their prices I'm not complaining. The board and components fit nicely in an extruded case from eBay. Dremel'ing the ethernet plugs out of the faceplate is a little annoying though.
I've received far more PCB's than I could possibly use. I'm giving away 7 boards (3 left!), if anyone is interested in building one let me know! (mail(A)<website's domain.nl>)
All the code and schematics are available on Github
- POCSAG Protocol reference with some nice diagrams, much nicer than my fixed-width ascii foo
- Pager information, schematics, software
- Pager programming software not sure yet how usefull it is, but it may allow you to reprogram RICs and stuff
- PDF file from New Zealand with information what a pager should do. Very helpful.
- POCSAG transmissions from an Arduino looks cool! I'm using his CRC generating code in the project. Credit goes to him!
- A complete POCSAG Infrastructure with a much larger frequency range. Looks cool!
- Osmocom, a platform for open source mobile communication. Inspiring stuff!