Full Code of mcore1976/jammer for AI

master c382c6030bf2 cached
6 files
8.7 KB
2.5k tokens
1 symbols
1 requests
Download .txt
Repository: mcore1976/jammer
Branch: master
Commit: c382c6030bf2
Files: 6
Total size: 8.7 KB

Directory structure:
gitextract_2b54sj65/

├── README.md
├── compileattiny
├── compileattiny.bat
├── jammer.ino
├── main.c
└── main.hex

================================================
FILE CONTENTS
================================================

================================================
FILE: README.md
================================================
# jammer
Very simple 433MHz (EUROPE/ASIA) or 315MHz (USA) RF jammer for keyless cars and garage keys

433/315 MHz key fob jammer based on ATTINY13A and FS1000A RF transmitting module. 
PIN B2 of ATTINY13A is connected to DATA IN of FS1000A transmitter board.
Both ATTINY13 and FS1000A are connected to 5V power supply.  You can attach several FS1000A to the same ATTINY13 for better results as well as modify FS1000A board by adding regulated capacitor 5pF-30pF for fine tuning jammed frequiencies (see videos below)
Please notice that SAW Oscillator used in FS1000A modules has 433.92MHz and has to be fine tuned to jamm particular frequency.

The source code for ATTINY13 is generating set of square waves - 50 sequences of 3 pulses each with different width to put enough noise on 433/315Mhz frequency. The device can effectively jam all wireless keys in 100 meter range f.ex. in underground garage.

Remember to buy appropriate FS1000A version for your location (check frequency).

To see how it works look here : https://www.youtube.com/watch?v=C7fyKEQMs7c    an here - modified version  https://www.youtube.com/watch?v=F10x1WN3X4Q

-------------------------------------------------------------------------------------------------------------------------------

COMPILATION ON LINUX PC :

Link to video how to program the chip : https://www.youtube.com/watch?v=7klgyNzZ2TI

The script attached in repository ( "compileattiny" ) can be used to upload data to the chip if you have Linux machine with following packages : "gcc-avr", "binutils-avr" (or sometimes just "binutils"), "avr-libc", "avrdude" and optionally "gdb-avr"(debugger only if you really need it) . For example in Ubuntu download these packages using command : "sudo apt-get install gcc-avr binutils-avr avr-libc gdb-avr avrdude". After this is done you can run from directory you downloaded the github files appropriate compilation script by commands

    "sudo chmod +rx compileattiny" and "sudo ./compileattiny"

-------------------------------------------------------------------------------------------------------------------------------

COMPILATION ON WINDOWS PC :

If you have Windows 10 machine please follow this tutorial to download and install full AVR-GCC environment for Windows : http://fab.cba.mit.edu/classes/863.16/doc/projects/ftsmin/windows_avr.html with latest compiler from Microchip/Atmel.

After it is done please use "compileattiny.bat"  for compilation inside directory where you have downloaded "main.c" file. You have to be logged as Windows Administrator to use avrdude software.

PROGRAMMING THE ATTINY / ATMEGA / ARDUINO - connecting cables to the chip :

To upload program code to the chip using cheapest USBASP programmer (less than 2 USD on eBay/Aliexpress) look at this page : http://www.learningaboutelectronics.com/Articles/Program-AVR-chip-using-a-USBASP-with-10-pin-cable.php , because we are not using ARDUINO bootloader here (especially for chips like ATTINY)

To program Digispark - In ARDUINO IDE go to File/Preferences/Additional board manager URL and put this URL : https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json , then go to Menu Tools/Board and select Digistump AVR Boards / Digispark default 16.5 MHZ


================================================
FILE: compileattiny
================================================
rm *.elf
rm *.o
rm *.hex
avr-gcc -mmcu=attiny13 -std=gnu99 -Wall -Os -o main.elf main.c -w
avr-objcopy -j .text -j .data -O ihex main.elf main.hex
avr-size --mcu=attiny13 --format=avr main.elf
sudo avrdude -c usbasp -p attiny13  -U flash:w:"main.hex":a



================================================
FILE: compileattiny.bat
================================================
del *.elf
del *.o
del *.hex
avr-gcc -mmcu=attiny13 -std=gnu99 -Wall -Os -o main.elf main.c -w
avr-objcopy -j .text -j .data -O ihex main.elf main.hex
avr-size --mcu=attiny13 --format=avr main.elf
avrdude -c usbasp -p attiny13  -U flash:w:"main.hex":a


================================================
FILE: jammer.ino
================================================
/*
 * 433 MHz key fob jammer based on ATTINY13A and FS1000A RF transmitting module
 * PIN B2 of ATTINY13A is connected to DATA IN of FS1000A transmitter board
 * both ATTINY13 and FS1000A are connected to 5V power supply
 * internal clock 9.6MHz with division by 8 = 1.2MHz effective clock
 * 
 */

#include <stdint.h>
#include <avr/io.h>
#include <util/delay.h>

//0 is P0, 1 is P1, 2 is P2, etc. - unlike the analog inputs, for digital outputs the pin number matches.
#define	FS1000A_DATA_PIN    2

int main(void)
{
        uint8_t widthsize;
        uint8_t sequence;
        uint8_t duration;

        // SET OUTPUT PIN TO STEER FS1000A DATA IN
         pinMode(FS1000A_DATA_PIN, OUTPUT);

        digitalWrite(FS1000A_DATA_PIN, LOW);

    /* neverending loop */
    while (1) {

        widthsize = 0;
        sequence = 0;
        duration = 0;

        // generating SQUARE WAVE for FS1000A DATA INPUT
        // we send 50 sequences of 3 pulses different width ( from 50us to 2.5 ms )
        // to generate enough distortion on 433 MHz frequency
	// and get widest possible bandwith covered on spectrum
        
        for(sequence=1; sequence<50; sequence++)
            {
         
        // only 10 pulses for each width
            for(duration=1; duration<=3; duration++)
                {  

                   digitalWrite(FS1000A_DATA_PIN, HIGH);     // bring DATA PIN up

                   // starting from 50usec width Pulses
                   for(widthsize=1; widthsize<=(1+sequence); widthsize++)      _delay_us (50);

                   digitalWrite(FS1000A_DATA_PIN, LOW);     // drag DATA PIN down

                    // starting from 50usec Pulses
                   for(widthsize=1; widthsize<=(1+sequence); widthsize++)     _delay_us (50);
  
                }; // end of DURATION loop

            }; // end of SEQUENCE variable loop

      }; // neverending loop 

};  // end of MAIN


================================================
FILE: main.c
================================================
/*
 * 433 MHz key fob jammer based on ATTINY13A and FS1000A RF transmitting module
 * PIN B2 of ATTINY13A is connected to DATA IN of FS1000A transmitter board
 * both ATTINY13 and FS1000A are connected to 5V power supply
 * internal clock 9.6MHz with division by 8 = 1.2MHz effective clock
 * 
 */

#include <stdint.h>
#include <avr/io.h>
#include <util/delay.h>

#define	FS1000A_DATA_HIGH()		(PORTB |= _BV(FS1000A_DATA_PIN))
#define	FS1000A_DATA_LOW()		(PORTB &= ~_BV(FS1000A_DATA_PIN))
#define	FS1000A_DATA_OUTPUT()		(DDRB |= _BV(FS1000A_DATA_PIN))

// Main Settings
#define	FS1000A_DATA_PIN			PB2

int main(void)
{
        uint8_t widthsize;
        uint8_t sequence;
        uint8_t duration;

        // SET OUTPUT PIN TO STEER FS1000A DATA IN
        FS1000A_DATA_OUTPUT();
        FS1000A_DATA_LOW();

	/* neverending loop */
    while (1) {

        widthsize = 0;
        sequence = 0;
        duration = 0;

        // generating SQUARE WAVE for FS1000A DATA INPUT
        // we send 50 sequences of 3 pulses different width ( from 50us to 2.5 ms )
        // to generate enough distortion on 433 MHz frequency
	// and get widest possible bandwith covered on spectrum
        
        for(sequence=1; sequence<50; sequence++)
        {
         
        // only 10 pulses for each width
        for(duration=1; duration<=3; duration++)
          {  

            FS1000A_DATA_HIGH();  // bring DATA PIN up

            // starting from 50usec width Pulses
           for(widthsize=1; widthsize<=(1+sequence); widthsize++)
             {
                // Generated by delay loop calculator
                // at http://www.bretmulvey.com/avrdelay.html
                //
                // Delay 60 cycles
                // 50us at 1.2 MHz
                 asm volatile (
                               "    ldi  r18, 20"	"\n"
                               "1:  dec  r18"	"\n"
                               "    brne 1b"	"\n"
                               );

              };  // end of widthsize for loop

            FS1000A_DATA_LOW();  // drag DATA PIN down

            // starting from 50usec Pulses
           for(widthsize=1; widthsize<=(1+sequence); widthsize++)
             {
                // Generated by delay loop calculator
                // at http://www.bretmulvey.com/avrdelay.html
                //
                // Delay 60 cycles
                // 50us at 1.2 MHz
                 asm volatile (
                               "    ldi  r18, 20"	"\n"
                               "1:  dec  r18"	"\n"
                               "    brne 1b"	"\n"
                               );


              };  // end of WIDTHSIZE variable for loop

           }; // end of DURATION loop

         }; // end of SEQUENCE variable loop

      }; // neverending loop 

};  // end of MAIN





================================================
FILE: main.hex
================================================
:1000000009C00EC00DC00CC00BC00AC009C008C09A
:1000100007C006C011241FBECFE9CDBF02D025C046
:10002000EFCFBA9AC29882E090E023E0C29A31E022
:10003000432F50E0841795072CF024E12A95F1F71F
:100040003F5FF6CFC29831E0432F50E08417950709
:100050002CF024E12A95F1F73F5FF6CF215031F7DC
:0E00600001968333910509F7DECFF894FFCFA8
:00000001FF
Download .txt
gitextract_2b54sj65/

├── README.md
├── compileattiny
├── compileattiny.bat
├── jammer.ino
├── main.c
└── main.hex
Download .txt
SYMBOL INDEX (1 symbols across 1 files)

FILE: main.c
  function main (line 20) | int main(void)
Condensed preview — 6 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (10K chars).
[
  {
    "path": "README.md",
    "chars": 3267,
    "preview": "# jammer\nVery simple 433MHz (EUROPE/ASIA) or 315MHz (USA) RF jammer for keyless cars and garage keys\n\n433/315 MHz key fo"
  },
  {
    "path": "compileattiny",
    "chars": 254,
    "preview": "rm *.elf\nrm *.o\nrm *.hex\navr-gcc -mmcu=attiny13 -std=gnu99 -Wall -Os -o main.elf main.c -w\navr-objcopy -j .text -j .data"
  },
  {
    "path": "compileattiny.bat",
    "chars": 258,
    "preview": "del *.elf\r\ndel *.o\r\ndel *.hex\r\navr-gcc -mmcu=attiny13 -std=gnu99 -Wall -Os -o main.elf main.c -w\r\navr-objcopy -j .text -"
  },
  {
    "path": "jammer.ino",
    "chars": 1980,
    "preview": "/*\r\n * 433 MHz key fob jammer based on ATTINY13A and FS1000A RF transmitting module\r\n * PIN B2 of ATTINY13A is connected"
  },
  {
    "path": "main.c",
    "chars": 2827,
    "preview": "/*\n * 433 MHz key fob jammer based on ATTINY13A and FS1000A RF transmitting module\n * PIN B2 of ATTINY13A is connected t"
  },
  {
    "path": "main.hex",
    "chars": 324,
    "preview": ":1000000009C00EC00DC00CC00BC00AC009C008C09A\r\n:1000100007C006C011241FBECFE9CDBF02D025C046\r\n:10002000EFCFBA9AC29882E090E02"
  }
]

About this extraction

This page contains the full source code of the mcore1976/jammer GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 6 files (8.7 KB), approximately 2.5k tokens, and a symbol index with 1 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!