Maker Pro
Arduino

Simple Arduino Bioresonance Therapy device - RIFE Machine

July 09, 2022 by Mirko Pavleski
Share
banner

This is device for treating diseases with the help of different frequencies. A set of several frequencies is given for each disease

Bioresonance is a form of therapy which is based on the claim that each organism has its own resonance frequency (bioresonance), the presence of which indicates the existence of a disease. Pioneers in the development of this theory are Raymond Rife, Hulda Clark and others. According to their studies, subjecting the body to the above frequency from an external generator can cure the disease.

This device for treating diseases with the help of different frequencies is also called Rife Machine, according to its inventor. A set of several frequencies is given for each disease, as well as the duration of therapy. Such devices were originally produced at the beginning of the last century, but are still sold today at incredibly high prices of thousands of dollars. The purpose of this project was to explain how to make such a device yourself with "professional" features whose complete cost does not exceed twenty five dollars. This is how I want to capture the real value of such devices that are sold today on Internet.

The device is very simple to build and contains only a few components:

- Arduino Mega microcontroller ( in my case DFRobot "DFRduino Mega2560" https://www.dfrobot.com/product-655.html )

- ST7920 chip based LCD with 128x64 dots resolution

- BC337 NPN Transistor

- two resistors (470 Ohms and 10 Kiloohms)

- trimming potentiometer 10 Kiloohms

- three Buttons

- and Stainless Hand Electrodes (which are connected to these clips)

At the end of the text there is a link where you can download the code and the schematic diagram. Otherwise, this project was originally described on the http://www.blaberk.com.pl/arduino/arduino_biorez.html page where you can also get the device in the form of Kit. I modified the code a bit, so instead of the ST7565 chip based display, I now use the ST7920 chip based LCD which is much cheaper and widely available for purchase. We will not discuss how to upload the code here, because you can easily find many useful tutorials on this topic.

The start menu appears when turned on. By pressing the down button we enter the submenu in which we select the disease for which we want to apply therapy. Specifically, the code includes frequencies for therapies for 31 diseases, but given that Arduino works with about 10 percent of the resources, we can very easily enter frequencies for many other diseases. The set of frequencies for each disease can be downloaded for free online if you request a "rife frequency list". Now that we have selected the therapy for a certain disease, we press the Start button and the duration of the whole therapy, and the elapsed time from its beginning, appears on the screen. The voltage from the generator can be applied to the "patient" in both hands, by means of two electrodes connected on this clips. The electrodes should be stainless and may be in the form of cylinders or plates. During therapy it would be good to immerse them in salt solution for better conductivity.

I am not a medical person and I can not discuss the effect of the device now, but as the output voltage does not exceed the 12V, the use of the device is completely safe for health. And of course, we need to treat bioresonance as supporting conventional therapy. As We will see on Scope, for each disease the signal has a different frequencies which change every minute of therapy.

Finally, the device is built into a suitable box made of PVC with a thickness of 3 mm and coated with self-adhesive colored wallpaper.

IMG_20220502_092402.jpg
IMG_20220502_114948.jpg
schematic.jpg

Schematic Diagram

/*
 * Arduino bioresonance generator
 */
#include <U8g2lib.h>

U8G2_ST7920_128X64_1_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* CS=*/ 10, /* reset=*/ 8);

const int index_choroby = 37;          //the number of diseases in the disease array[]
const char* choroby[index_choroby] = {
  "Alcoholism",       "Angina",          "Stomachache",         "Pain in general",  "Headaches",
  "Infection",     "Acute pain",       "Back pain 2",        "Arthralgia",   "Toothache",
  "No appetite",     "No taste",      "Motion sickness", "Hoarseness",      "Dolegl. gastric",
  "Prostate ailments", "Deafness",        "Flu",               "Hemorrhoids",    "Kidney stones", 
  "Cough",           "runny nose",           "Hair loss",            "Hypertension", "Low pressure", 
  "Disease. thyroid gland","Bad breath","General herpes",   "Epilepsy",     "Constipation",
  "Dizziness"
  };
const int liczby[index_choroby * 10] = { 
  10000 ,0     ,0      ,0      ,0      ,0      ,0      ,0      ,0      ,0      , //"Alkoholizm"
  787   ,776   ,727    ,690    ,465    ,428    ,660    ,0      ,0      ,0      , //"Angina"
  10000 ,3000  ,95     ,0      ,0      ,0      ,0      ,0      ,0      ,0      , //"Stomachache"
  3000  ,2720  ,95     ,666    ,80     ,40     ,0      ,0      ,0      ,0      , //"Pain in general"
  10000 ,144   ,160    ,520    ,304    ,0      ,0      ,0      ,0      ,0      , //"Headaches"
  3000  ,95    ,880    ,1550   ,802    ,787    ,776    ,727    ,0      ,0      , //"Infection"
  3000  ,95    ,10000  ,1550   ,802    ,880    ,787    ,727    ,690    ,666    , //"Acute pain"
  787   ,784   ,776    ,728    ,727    ,465    ,432    ,0      ,0      ,0      , //"Back pain 2"
  160   ,500   ,1600   ,5000   ,324    ,528    ,0      ,0      ,0      ,0      , //"Arthralgia"
  5170  ,3000  ,2720   ,2489   ,1800   ,1600   ,1550   ,880    ,832    ,666    , //"Toothache" 
  10000 ,465   ,444    ,1865   ,125    ,95     ,72     ,880    ,787    ,727    , //"No appetite"
  10000 ,20    ,0      ,0      ,0      ,0      ,0      ,0      ,0      ,0      , //"No taste"
  10000 ,5000  ,648    ,624    ,600    ,465    ,440    ,648    ,444    ,1865   , //"Motion sickness"
  880   ,760   ,727    ,0      ,0      ,0      ,0      ,0      ,0      ,0      , //"Hoarseness"
  10000 ,1550  ,802    ,880    ,832    ,787    ,727    ,465    ,0      ,0      , //"Dolegl. gastric",
  2050  ,880   ,1550   ,802    ,787    ,727    ,465    ,20     ,0      ,0      , //"Bladder and prostate ailments",
  10000 ,1550  ,880    ,802    ,787    ,727    ,20     ,0      ,0      ,0      , //"Deafness",
  954   ,889   ,841    ,787    ,763    ,753    ,742    ,523    ,513    ,482    , //"Flu",
  4474  ,6117  ,774    ,1550   ,447    ,880    ,802    ,727    ,0      ,0      , //"Hemorrhoids",
  10000 ,444   ,727    ,787    ,880    ,6000   ,3000   ,1552   ,0      ,0      , //"Kidney stones",
  7760  ,7344  ,3702   ,3672   ,1550   ,1500   ,1234   ,776    ,766    ,728    , //"Cough",
  1800  ,1713  ,1550   ,802    ,800    ,880    ,787    ,727    ,444    ,20     , //"runny nose",
  10000 ,5000  ,2720   ,2170   ,1552   ,880    ,800    ,787    ,727    ,465    , //"Hair loss",
  10000 ,3176  ,2112   ,95     ,324    ,528    ,880    ,787    ,727    ,304    , //"Hypertension",
  727   ,787   ,880    ,0      ,0      ,0      ,0      ,0      ,0      ,0      , //"Low pressure",
  16000 ,10000 ,160    ,80     ,35     ,0      ,0      ,0      ,0      ,0      , //"Disease. thyroid gland"
  1550  ,802   ,880    ,787    ,727    ,0      ,0      ,0      ,0      ,0      , //"Bad breath",
  2950  ,1900  ,1577   ,1550   ,1489   ,1488   ,629    ,464    ,450    ,383    , //"General herpes",
  10000 ,880   ,802    ,787    ,727    ,700    ,650    ,600    ,210    ,125    , //"Epilepsy"'
  3176  ,1550  ,880    ,832    ,802    ,787    ,776    ,727    ,444    ,422    , //"Constipation",
  1550  ,880   ,802    ,784    ,787    ,786    ,766    ,522    ,727    ,72       //"Dizziness",
};

byte inPin1 = 7;                  // digital input sw-1
byte inPin2 = 6;                  // digital input sw-2
byte inPin3 = 5;                  // digital input sw-3
byte buzzerPin = 4;
//byte ledPin = 3;
byte i, a, b, c, intr;
byte reading, reading1, reading2, reading3;  // button reading variables
byte P1, P2;                      // button states
unsigned long time0, time1, time2, time3;
char* tytul;                 //name of the selected disease
byte ilosc_f;  
byte strona;                        //menu page
char f_str[3];                      //string with an amount of f
char i_str[3];                      //string with number f
char* k_str;                        //the word END
int f_gen;                          //generator frequency


void setup(void) {
  u8g2.begin();
  Serial.begin(9600);
  pinMode(13, OUTPUT);         
  digitalWrite (13, LOW);                 //turning on the LCD backlight
  pinMode(inPin1, INPUT_PULLUP);          //setting the pin as a digital input
  pinMode(inPin2, INPUT_PULLUP);
  pinMode(inPin3, INPUT_PULLUP);
  P1 = 0; P2 = 1;
  intr = 0; strona = 0;
}

void loop(void) {
  if (intr == 1) {stuffHappened();}
  u8g2.firstPage();
  do {
    if ( intr == 0) {Intro();}              //display a splash screen
    if ( intr == 1) {
      Menu();  
    }
  } while ( u8g2.nextPage() );
  if (intr == 0) {delay(1000); intr = 1;}
  delay(20);                                  // screen refresh period
  //randomSeed(analogRead(0));
}

void Intro(void){ 
  u8g2.setFont(u8g2_font_helvB12_te);         // choosing large fonts
  u8g2.drawStr( 8, 20,  "Bio resonance ");
  u8g2.drawStr( 11, 45,  "RIFE machine");
  u8g2.setFont(u8g2_font_6x12_te);            // choosing large fonts
  u8g2.drawStr( 20, 62,  "Click  to start");
  //u8g2.drawGlyph(107,62, 261);                
  //u8g2.drawGlyph(113,62, 263);                
  u8g2.setFont(u8g2_font_open_iconic_arrow_1x_t);
  u8g2.drawGlyph(52,62, 64);                  // adding a down arrow
  //u8g2.drawGlyph(55,62, 67);                // adding an up arrow
}

void Menu(void){
  u8g2.setFont(u8g2_font_6x12_te);
  tytul = "  ILLNESS";
  Ramka();
  for (i = strona; i < 6 + strona; i++){
    if (i <= index_choroby - 1){
      u8g2.drawStr( 10, 20 + 10* (i-strona), choroby[i]);
    }        
  }
}

void Ramka(void) {
  u8g2.drawFrame( 0, 0 , 128, 64);         //drawing a frame around the screen
  u8g2.drawBox(0, 0, 128, 10);             //drawing a black background
  u8g2.setDrawColor(2);                    //select a writing mode
  u8g2.setFontMode(1);                     //white on black
  u8g2.drawStr(30, 8, tytul);
  u8g2.setDrawColor(1);                    //return to writing mode 
  u8g2.setFontMode(1);                     //black on white
}

void stuffHappened(void){
  P1 = 0; P2 = 0;
  do {
    Dipsw();
  }while (P2 == 0);  
}

void Dipsw(void){
  time0 = micros();
  reading = HIGH;
  //wybór choroby w dół
  reading = digitalRead(inPin1);              //reading the state sw = 1
  reading1 = digitalRead(inPin1);
  if (reading == LOW and reading1 == LOW) { 
    time1 = micros() - time0;
  }  
  if (time1 > 10 and reading1 == HIGH) {
    P1++;
    if (P1 > index_choroby) {P1 = index_choroby;}     //number of games in the disease table []
    if (P1 <= 5) {strona = 0;}
    if (P1 > 5 && P1 <=10) {strona = 5;}
    if (P1 > 10 && P1 <=15) {strona = 10;}
    if (P1 > 15 && P1 <=20) {strona = 15;}
    if (P1 > 20 && P1 <=25) {strona = 20;}
    if (P1 > 25 && P1 <=30) {strona = 25;}
    if (P1 > 30 && P1 <=35) {strona = 30;}
    if (P1 > 35 && P1 <=40) {strona = 35;}
    if (P1 > 40) {strona = 35;}
    Wyswietl_kursor();                               //displays a marquee
    time0 = 0; time1 = 0;
  }
  //wybranie choroby w górę
  reading = digitalRead(inPin2);                     //reading the state sw = 2
  reading2 = digitalRead(inPin2);
  if (reading == LOW and reading2 == LOW ) {                       
    time2 = micros() - time0;
  }  
  if (time2 > 10 and reading2 == HIGH) {
    P1--;
    if (P1 < 1) {P1 = 1;}
    if (P1 <=5) {strona = 0;}
    if (P1 > 5 && P1 <=10) {strona = 5;}
    if (P1 > 10 && P1 <=15) {strona = 10;}
    if (P1 > 15 && P1 <=20) {strona = 15;}
    if (P1 > 20 && P1 <=25) {strona = 20;}
    if (P1 > 25 && P1 <=30) {strona = 25;}
    if (P1 > 30 && P1 <=35) {strona = 30;}
    if (P1 > 35 && P1 <=40) {strona = 35;}
    if (P1 > 40) {strona = 35;}
    Wyswietl_kursor();
    time0 = 0; time2 = 0;
  }
  //włączenie trybu "PRACA"
  reading = digitalRead(inPin3);            //reading the state sw = 3
  reading3 = digitalRead(inPin3);
  if (reading == LOW and reading3 == LOW) {   
    time3 = micros() - time0;
  } 
  if (time3 > 20 and reading3 == HIGH) {
    tytul = choroby[P1-1];
    Generuj();
    time0 = 0; time3 = 0;
  }
}

void Wyswietl_kursor(void){                        //displays text and cursor
  u8g2.firstPage();
  do {
     u8g2.drawHLine( 5, 11 + (P1-strona)*10, 118);
     u8g2.drawHLine( 5, 2 + (P1-strona)*10, 118);
     u8g2.drawVLine( 5, 2 + (P1-strona)*10, 10);
     u8g2.drawVLine( 122, 2 + (P1-strona)*10, 10);     
     Menu();
  } while ( u8g2.nextPage() );
}

void Generuj(void){
  int f, b9;
  f = 0; ilosc_f = 0; k_str = "";
  for (i=0; i < 10; i++) {                    //determining the amount of f in the disease table
     f = liczby[10*(P1-1) + i];
     if (f > 0) ilosc_f ++;
  }
  if (ilosc_f > 4) {strcpy(f_str, u8x8_u8toa(ilosc_f, 2)); b = 1;}
  if (ilosc_f == 4){strcpy(f_str, u8x8_u8toa(8, 2)); b = 2;}
  if (ilosc_f == 3){strcpy(f_str, u8x8_u8toa(6, 2)); b = 2;}
  if (ilosc_f == 2){strcpy(f_str, u8x8_u8toa(6, 2)); b = 3;}
  if (ilosc_f == 1){strcpy(f_str, u8x8_u8toa(5, 2)); b = 5;}  
  for (i=0; i < ilosc_f; i++) {
     f_gen = liczby[10*(P1-1) + i];
     strcpy(i_str, u8x8_u8toa(i+1, 2));        //Convert to a 2-digit string
     DisplayRamka();
     for (a=0; a < b*6; a++){                    //generating 1 minute (6 * 10sec)
        beep(f_gen, 10000);
     }   
     delay (1000);
  }
  k_str = "FINISH";
  DisplayRamka();
  k_str = "";
}

void beep(int note, int duration){
  tone(buzzerPin, note, duration);
  delay(duration);
  noTone(buzzerPin);
  delay(30);
}

void   DisplayRamka() {
  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_6x12_te);           // choosing small fonts
    Ramka();
    u8g2.drawStr(22, 25, "Start of therapy");
    u8g2.drawStr(25, 38, "Time:");
    u8g2.drawStr(58, 38, f_str);
    u8g2.drawStr(75, 38, "min.");
    u8g2.setFont(u8g2_font_helvB14_te);         // choosing large fonts
    if (k_str == "") u8g2.drawStr(55, 58, i_str);
    if (k_str != "") u8g2.drawStr(22, 58, k_str);
  } while ( u8g2.nextPage() );
}

Author

Avatar
Mirko Pavleski

Electronics , Arduino , Physics

Related Content

Comments


You May Also Like