Audubon society plush toys modified to activate on BTLE beacons.
This is designed to interface with toys that run on batteries. The device uses a NRF24L01+, set with a very specific destination address, on channels 37-39, which happen to overlap with some of the Bluetooth LE spec.
By configuring the radio to ignore stock (Nordic) crcs, and by implementing the BTLE CRC and whitening algorithms, we can interpret legitimate beacons and respond to them.
- Dmitry Grinberg's Bit Banging to send a BTLE beacon
- Florian Echtler's BTLE library
- Stanley Seow's ATtiny85 port of the nrf library
- Nerd Ralph's hacks to run the nrf24 on 3 pins instead of 5
- ATTiny Arduino Core
- Included Libraries installed
- Something to send a BTLE beacon (a linux computer)
- ATTiny85
- nrf24l01+
- An NPN transistor to switch on your device (2N3904)
- 3.3V Power supply (2X AA batteries)
- Some sort of ISP programmer
See the schematic_eagle
folder for my first attempt at a schematic ever.
I use OpenWrt on a TP-Link WR703N plus an inexpensive Bluetooth 4.0 dongle.
Combine this with an HTTP interface on an xinetd script and you have an API!
See openwrt_setup
for more details on this. Having a dedicate computer that
can respond to requests to generate beacons is cool.
Once you have server, you can emulate the Audubon Singing Bird Clock!
0 7 * * * /usr/sbin/send_beacon CalQuail
0 8 * * * /usr/sbin/send_beacon CaliGull
0 9 * * * /usr/sbin/send_beacon NrthCard
0 10 * * * /usr/sbin/send_beacon PrplFnch
0 11 * * * /usr/sbin/send_beacon EastBlue
0 12 * * * /usr/sbin/send_beacon WestMead
0 13 * * * /usr/sbin/send_beacon CaliWren
0 14 * * * /usr/sbin/send_beacon WillowPt
0 15 * * * /usr/sbin/send_beacon BrnPelic
0 16 * * * /usr/sbin/send_beacon CactusWr
0 17 * * * /usr/sbin/send_beacon WestMead
0 18 * * * /usr/sbin/send_beacon HermitTh