Having an ESP32, ST7735 LCD and RFM69HW inside a NES Controller
The following repositories were used for this project. Please notice that these are still under development. Use at your own risk!
At some point a was using the Texas Instrument CC1101 RF module with the ESP8266 which gave me some results after using the SmartRF04EB debugging device in combination with the TI smartRF Studio 7. Turns out that this device seems to be quite powerfull, but it was too much of a hassle to catch simple OOK pattern or even send one without preamble. The SmartRF Sniffer does not work with the cheap debugger and other hardware was needed which were 70$ at minimum. Although I know everybody is doing it with their CUL sticks. Maybe someone can tell me how to…
But ESP8266’s SPI works with the CC1101 and nrf24l01.
Anyways, I am planning on pulling out the RX/TX and SPI via pin headers so we can connect devices like the CC1101 (433 MHz / 868 MHz / 915 MHz) or nrf24l01 (2.4 GHz) more easily. After I got to know about the RFM69(HW) which is surprisingly small I tested the RFMOOK lib. From there on I knew this was my preferred device. It was possible to receive and save OOK signals from most of my ISM devices and resend them.
Next task was the LCD color display which can be found on ebay (ILI9163C/ST7735) for about 7$. For this you need to use sumotoy’s TFT_ILI9163C Prerelease lib which was originaly ported to the ESP8266 but can also be used for the ESP32. At this point it is not using the ultra fast mode (_ESP8266_SPIFAST) because of some ESP8266 dependencies which can probably be solved easily. But for now this is enough for a simple menu and some colored sensor output.
After hooking up the RFM69 and the LCDisplay to the ESP32 everthing seems to be working both sharing the SPI. Luckily the ESP32 has plenty of GPIOs so you can connect all NES controller buttons to the board without having to use a multiplexer board. I hereby confirm that there must be people with better soldering skills.
Finally I added an IPX antenna to get a good reception. My first ISM 433 MHz pattern recognition test programm was able to receive almost all signals. After some tweeking with the package size, bandwidth and threshold most signals could be recorded and replayed. But it still needs adjustment to get it more versatile on different devices.
I plan to improve the saving of the OOK or FSK patterns and make an appropriate UX or menu and make some more persistance in the ESP’s NVS as soon as it will be available for the Arduino core. Someone pushed this on Github.
- Next stop FSK or Encryption
- And some other Frequencies. In Europe it is mostly 433MHz
- Broader support for devices (better automatic package/amplitude size detection
- Fully remote RF analysis/exploits with Websockets over Wifi or SIM800l and Webinterface