Skip to content
Prefilter for 433 MHz remotes (and similar protocolls) written for an attiny45
Branch: master
Clone or download
Pull request Compare This branch is 11 commits ahead of mercuri0:master.
Latest commit d47c80f Feb 9, 2015
Type Name Latest commit message Commit time
Failed to load latest commit information.
Makefile Changes to support multiple target MCUs Feb 9, 2015 Changes to support multiple target MCUs Feb 9, 2015
circuit.png Updated firmware to version 3 Apr 9, 2014
pilight_firmware.c Rename pilight_firmware_t45_v3.c to pilight_firmware.c Feb 9, 2015

pilight firmware

this is an rf receiver prefilter for pilight build with an ATTiny45 / 85. it prefilters the received signal to reduce the load for pilight ( you be warned: this could potentionally damage your raspberry pi and also other hardware. i take no responsability for any damages! use at your own risk!

  1. Install avrgcc:

sudo apt-get install gcc-avr avr-libc
  1. Install modified avrdude:

sudo dpkg -i avrdude_5.10-4_armhf.deb
sudo dpkg -i avrdude-doc_5.10-4_all.deb
  1. Calculate the MIN_PULSELENGTH and MAX_PULSELENGTH values

MIN_PULSELENGTH =  ( shortest expected pulse - 10% ) / 10
MAX_PULSELENGTH =  ( longest expected pulse + 10% ) / 10

the shortest expected pulse is the minimal base pulse-width of all your protocols
the longest expected pulse is the maximal base pulse-width of all your protocols multiplied by 34
  1. Compile and program ATTiny:

make all

Additional info:

###Calculate fuses:


I use this circuit without resistors. if you want you can even power the ATTiny with 3.3V, it works for 4 out 5 ATTiny's, but i think the timing is less accurate. schematic

Name Raspberry Pi V2 ATTiny45 433 Receiver
MOSI 19 5 -
MISO 21 6 -
SCK 23 7 -
RESET 24 1 -
PI_IN see pilight cfg 2 -

to change the pins create an .avrduderc file in your home directory containing (the numbering is wiringpi numbering!):

	id    = "gpio";
	desc  = "Use sysfs interface to bitbang GPIO lines";
	type  = gpio;
	reset = 8;
	sck   = 11;
	mosi  = 10;
	miso  = 9;


If you want to program an ATTiny85 add a parameter when calling make:

Make all type=t85
You can’t perform that action at this time.