I've been pulling my hair out over this for weeks and I can not for love nor money work out why it's not working.

I have a very standard NPN low side switch setup to turn a relay on/off from a 3.3V signal. In reality the 3.3V signal will come from an ESP8266 but on my breadboard setup its coming from a power supply.

When I push the tactile pushbutton the relay turns on, when I let the button go, the relay stays on.


The only way I can get the relay to turn off again is to disconnect the 12V power source. 

[![Circuit Diagram][1]][1]


Things I've tried:
- I've tested all of the voltages and they're fine
- I thought maybe the 2N2222 (TR1) base wasn't draining properly so I tried connecting it to ground via a 10k ohm resistor as well as the 1k ohm, no luck there
- I thought maybe for some crazy reason 3.3V just wasn't cutting it so I tried a 5V signal instead, no luck there either
- I tried all of the above with a 330 ohm resistor instead of a 1k (R1) to increase the current through the transistor, no luck there either
- Thought I might be losing my mind and had wired the transistor in backwards. I hadn't, that transistor is now dead
- Thought the relay might be fried, swapped it out for a different one then connected it directly to 12V. Worked just fine
- [Read through this identical question][2]
- [Also read through this one][3]

If anyone has any ideas on how to get this to work or if they notice something I've wired backwards (highly embarrassing) please let me know.

Appreciate the help!!

[![Circuit Photo1][4]][4]
[![Circuit Photo2][5]][5]
[![Circuit Photo3][6]][6]


  [1]: https://i.sstatic.net/zUCIM.png
  [2]: https://electronics.stackexchange.com/questions/107224/npn-bjt-relay-circuit-will-not-turn-off
  [3]: https://electronics.stackexchange.com/questions/283139/relay-does-not-turn-on
  [4]: https://i.sstatic.net/sBYfd.jpg
  [5]: https://i.sstatic.net/g3UVQ.jpg
  [6]: https://i.sstatic.net/nF5Fy.jpg