The GMS Board Replication and DB37 in out connector Convert



securesupplies

Re: The GMS Board Replication and DB37 in out connector Convert
« Reply #78, on September 30th, 2020, 08:53 PM »Last edited on September 30th, 2020, 08:58 PM
Water Fuel Level control tank and Cell 2 in1
we are making the system with color screens this will incorporate into the auto start board on gms unit m note the 2 sensors will be water proof and work different from each other one is running balancing of 1 or 2 water tanks ,
and 2nd is adjustment of the cell optimum water level no full or empty but optimum 2 cm range both are driven by a single smart synced circuit
 work in progress will post update on this soon as we add to the autostart db 37 card for gms use


Autostart auto refill Version 2  db 37 coming soon


securesupplies

Re: The GMS Board Replication and DB37 in out connector Convert
« Reply #80, on October 1st, 2020, 06:33 AM »
ARDUINO AUTOFILL CODE
Inbox
 

/* This code is written for Mr. Daniel Donatelli.
   This project will automatically maintain perfect water level in WFC.
*/

#include <NewPing.h> //Including library for ultrasonic sensors

//Ultrasonic 1 setup
#define TRIGGER_PIN  10// Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN     11 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

//Ultrasonic 2 setup
#define TRIGGER_PIN2  8 // Arduino pin tied to trigger pin on the 2nd ultrasonic sensor.
#define ECHO_PIN2    9 // Arduino pin tied to echo pin on the 2nd ultrasonic sensor.
#define MAX_DISTANCE2 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
NewPing sonar2(TRIGGER_PIN2, ECHO_PIN2, MAX_DISTANCE2); // NewPing setup of pins and maximum distance.

#include <Wire.h>
#include <Adafruit_GFX.h> //Including OLED library
#include <Adafruit_SSD1306.h>  //Including OLED library

//Defination of basic display parameters
#define OLED_RESET 4
#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2
#define LOGO16_GLCD_HEIGHT 64
#define LOGO16_GLCD_WIDTH  128
Adafruit_SSD1306 display(OLED_RESET);
Adafruit_SSD1306 display2(OLED_RESET);


//Tuning parameters for WFC (In Centimeters)
//Difference of 2cm is recommended between two levels for precise working of system
//UL stands for UPPER LIMIT
//LL stands for LOWER LIMIT
#define WFC_HIGH_UL 3
#define WFC_HIGH_LL 0
#define WFC_PERFECT_UL 10
#define WFC_PERFECT_LL 5
#define WFC_LOW_UL 20
#define WFC_LOW_LL 12


//Tuning parameters for Water Tank (In Centimeters)
//Difference of 2cm is recommended between two levels for precise working of system
//UL stands for UPPER LIMIT
//LL stands for LOWER LIMIT
#define WATER_TANK_100_UL 3
#define WATER_TANK_100_LL 0
#define WATER_TANK_75_UL 10
#define WATER_TANK_75_LL 5
#define WATER_TANK_50_UL 15
#define WATER_TANK_50_LL 12
#define WATER_TANK_25_UL 20
#define WATER_TANK_25_LL 17
#define WATER_TANK_0_UL 200
#define WATER_TANK_0_LL 22

#define PUMP_PIN 2
int TANK_INDICATION = 1;

void setup() {
  Serial.begin(9600); // Set serial monitor with 9600 baud
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the Display1 address
  display2.begin(SSD1306_SWITCHCAPVCC, 0x3d);   // initialize with the Display2 address
  pinMode(PUMP_PIN, OUTPUT);
  digitalWrite(PUMP_PIN, HIGH);
}
// setup end


void loop() {

  if (sonar2.ping_cm() > WATER_TANK_100_LL && sonar2.ping_cm() < WATER_TANK_100_UL) {

    display.clearDisplay(); //Display Reset

    Print_Text("Water Tank Level", 15, 0, 1, false);
    Print_Text("Water Level", 60, 9, 1, false);
    Print_Text("100%", 83, 20, 1, false);
    display.fillRect(5, 10, 50, 100, SSD1306_WHITE);
    display.drawLine(5, 10, 5, 50, SSD1306_WHITE);
    display.drawLine(55, 10, 55, 50, SSD1306_WHITE);
    display.drawRect(5, 10, 50, 1, SSD1306_WHITE);

    display.display(); //Executing display layout
    TANK_INDICATION = 1;
  }

  else if (sonar2.ping_cm() > WATER_TANK_75_LL && sonar2.ping_cm() < WATER_TANK_75_UL) {

    display.clearDisplay();

    Print_Text("Water Tank Level", 15, 0, 1, false);
    Print_Text("Water Level", 60, 9, 1, false);
    Print_Text("75%", 83, 20, 1, false);
    display.fillRect(5, 15, 50, 100, SSD1306_WHITE);
    display.drawLine(5, 10, 5, 50, SSD1306_WHITE);
    display.drawLine(55, 10, 55, 50, SSD1306_WHITE);
    display.drawRect(5, 10, 50, 1, SSD1306_WHITE);

    display.display();
    TANK_INDICATION = 1;
  }

  else if (sonar2.ping_cm() > WATER_TANK_50_LL && sonar2.ping_cm() < WATER_TANK_50_UL) {

    display.clearDisplay();

    Print_Text("Water Tank Level", 15, 0, 1, false);
    Print_Text("Water Level", 60, 9, 1, false);
    Print_Text("50%", 83, 20, 1, false);
    display.fillRect(5, 20, 50, 100, SSD1306_WHITE);
    display.drawLine(5, 10, 5, 50, SSD1306_WHITE);
    display.drawLine(55, 10, 55, 50, SSD1306_WHITE);
    display.drawRect(5, 10, 50, 1, SSD1306_WHITE);

    display.display();
    TANK_INDICATION = 1;
  }
 
  else if (sonar2.ping_cm() > WATER_TANK_25_LL && sonar2.ping_cm() < WATER_TANK_25_UL ) {

    display.clearDisplay();

    Print_Text("Water Tank Level", 15, 0, 1, false);
    Print_Text("Water Level", 60, 9, 1, false);
    Print_Text("25%", 83, 20, 1, false);
    display.fillRect(5, 25, 50, 100, SSD1306_WHITE);
    display.drawLine(5, 10, 5, 50, SSD1306_WHITE);
    display.drawLine(55, 10, 55, 50, SSD1306_WHITE);
    display.drawRect(5, 10, 50, 1, SSD1306_WHITE);

    display.display(); 
    TANK_INDICATION = 1;
  }
 
  else if (sonar2.ping_cm() > WATER_TANK_0_LL && sonar2.ping_cm() < WATER_TANK_0_UL) {
   
    display.clearDisplay();
   
    Print_Text("Water Tank Level", 15, 0, 1, false);
    Print_Text("Water Level", 60, 9, 1, false);
    Print_Text("0%", 83, 20, 1, false);
    display.fillRect(5, 30, 50, 100, SSD1306_WHITE);
    display.drawLine(5, 10, 5, 50, SSD1306_WHITE);
    display.drawLine(55, 10, 55, 50, SSD1306_WHITE);
    display.drawRect(5, 10, 50, 1, SSD1306_WHITE);
   
    display.display();
    TANK_INDICATION = 0;
  }


  if (sonar.ping_cm() > WFC_HIGH_LL && sonar.ping_cm() < WFC_HIGH_UL) {
   
    display2.clearDisplay();
   
    Print_Text2("WFC Water Fuel %", 15, 0, 1, false);
    Print_Text2("Water Level", 60, 9, 1, false);
    Print_Text2("HIGH", 83, 20, 1, false);
    display2.fillRect(5, 10, 50, 100, SSD1306_WHITE);
    display2.drawLine(5, 10, 5, 50, SSD1306_WHITE);
    display2.drawLine(55, 10, 55, 50, SSD1306_WHITE);
    display2.drawRect(5, 10, 50, 1, SSD1306_WHITE);
   
    display2.display();

  }
  else if (sonar.ping_cm() > WFC_PERFECT_LL && sonar.ping_cm() < WFC_PERFECT_UL) {
   
    display2.clearDisplay();
   
    Print_Text2("WFC Water Fuel %", 15, 0, 1, false);
    Print_Text2("Water Level", 60, 9, 1, false);
    Print_Text2("PERFECT", 83, 20, 1, false);
    display2.fillRect(5, 20, 50, 100, SSD1306_WHITE);
    display2.drawLine(5, 10, 5, 50, SSD1306_WHITE);
    display2.drawLine(55, 10, 55, 50, SSD1306_WHITE);
    display2.drawRect(5, 10, 50, 1, SSD1306_WHITE);
   
    display2.display();
    digitalWrite(PUMP_PIN, LOW);

  }
 
  else if (sonar.ping_cm() > WFC_LOW_LL && sonar.ping_cm() < WFC_LOW_UL) {
   
    display2.clearDisplay();
   
    Print_Text2("WFC Water Fuel %", 15, 0, 1, false);
    Print_Text2("Water Level", 60, 9, 1, false);
    Print_Text2("LOW", 83, 20, 1, false);
    display2.fillRect(5, 30, 50, 100, SSD1306_WHITE);
    display2.drawLine(5, 10, 5, 50, SSD1306_WHITE);
    display2.drawLine(55, 10, 55, 50, SSD1306_WHITE);
    display2.drawRect(5, 10, 50, 1, SSD1306_WHITE);
   
    display2.display();
   
    if(TANK_INDICATION == 1){
    digitalWrite(PUMP_PIN, HIGH);
    }
  }
   if(TANK_INDICATION == 0){
    digitalWrite(PUMP_PIN, LOW);
    }
}





void Print_Text(String text, int x, int y, int size, boolean d) {

  display.setTextSize(size);
  display.setTextColor(WHITE);
  display.setCursor(x, y);
  display.println(text);
  if (d) {
    display.display();
  }
}
void Print_Text2(String text, int x, int y, int size, boolean d) {

  display2.setTextSize(size);
  display2.setTextColor(WHITE);
  display2.setCursor(x, y);
  display2.println(text);
  if (d) {
    display2.display();
  }

}




securesupplies

Re: The GMS Board Replication and DB37 in out connector Convert
« Reply #84, on October 3rd, 2020, 12:49 PM »
Stanley A Meyer Auto Start AUTOFILL Vic Matrix GMS Db 37

   ID Name Designator Footprint Quantity   

1 C1 100UF 25V CAP-8*5 1 pc

2 C2 0.1UF CERAMIC 4   pc
3 C3 220NF CERAMIC 1   pc

4 R1 3.3K AXIAL-0.4 1  pc

 5 R2 1K AXIAL-0.4 1   pc

6 R3 8M2 AXIAL-0.4 1   pc

7 R4 1M AXIAL-0.4 3  pc

 8 R5 100K AXIAL-0.4 3  pc

 9 R6 10K AXIAL-0.4 4   pc

10 IC1 4013 DIP-14 1   pc

11 D1 1N4007 DO-41 2   pc

12 Q1 2N7000 TO92 CBE 1   pc

13 LED 1   14 P-12 PCB RELAY 1   pc

15 DB-37 RIGHT-ANGLED CONNECTOR 1  pc

 15 10AMP RELAY 1   pc

16 ARDUINO NANO 1   pc

17 BC547 1   pc

18 220R 1  pc

 19 I2C OLED 128X64 2 pc

  20 HC-SR04-Ultrasonic SENSOR 2 pc

  21 MALE FEMALE HEADER PINS 30        pc




firepinto

Re: The GMS Board Replication and DB37 in out connector Convert
« Reply #88, on October 28th, 2020, 04:59 PM »
I understand why the privacy.  The world isn't safe at all anymore.  Just the fact that free electricity would be like printing free money directly with the advent of mineable cryptocurrencys  It would be attracting all kinds of bad juju.  Possibly devalue millions...

Earl

Re: The GMS Board Replication and DB37 in out connector Convert
« Reply #89, on December 18th, 2020, 07:04 AM »
Dan the attached is first draft of VIC Matrix connection document we talked about.  I started with the first couple of boards that I finished. If this format is OK I will add to it as I finish some of the other boards.


Earl

Re: The GMS Board Replication and DB37 in out connector Convert
« Reply #91, on December 21st, 2020, 04:46 AM »
Dan

The next version is attached.  I did the rest to the VIC Matrix and cleaned up a few things that where miss labeled when I cut and pasted some of the tables. I have lighted things that need to be looked at in RED text.  Biggest one might be the TPS wiring not on VIC MATRIX board as it looks right - problem is in version of Digital Means board I have because all the TPS connects are J (tied together on back of board small pad above pins)

Order of things in document is just the order I looked at things but can easily be changed.


Earl

Re: The GMS Board Replication and DB37 in out connector Convert
« Reply #93, on December 21st, 2020, 10:32 AM »
Dan,

I was getting read y to test the K2 board and found I have the 37 sub-d pin numbers reversed.  1 should be 19 etc for all the pins.  I can fix this  I always have this problem do you look at pin number from face or back (it reverse the numbering).  But if the break out board numbers do not match board this with be confusing.  Leave the pin numbering on 37 connectors numbering for me I will fix after you repost should not take to long.  I used the numbers on 9-pin on board so they should be right.


Earl

Re: The GMS Board Replication and DB37 in out connector Convert
« Reply #95, on December 21st, 2020, 01:59 PM »
Dan updated pin numbers in tables they are in reverse order but should be correct now.  Also corrected a few minor typo typos.  Like items you added.
Bet you wish you had this information years ago.  Did update information on the switch on K2 as it is needed to make board work figured out switch pots they connect to.

Bump version number to 2.2


securesupplies

Re: The GMS Board Replication and DB37 in out connector Convert
« Reply #97, on December 21st, 2020, 11:52 PM »
 Updated 
Bump version number to 2.3

Incorporated previous works in to the end of it
  • added vic sections testing and card testing
    added vic daughter board
    added safety card ki
    added sensors switches notes for ki
    added schematic work start ) we can draw convert drawing to  update in pc

Earl

Re: The GMS Board Replication and DB37 in out connector Convert
« Reply #98, on December 22nd, 2020, 08:30 AM »
Surprise you added all the testing notes hope it helps others.  One Note;  I need to take a look at K4 write up.  When doing testing I had assumed that input signal was 5V level as I used output of K2 as input.  When I had a problem with the TIP120 failure recently  I went back through the board to see what was working and noticed input is at 12V level.  While my test board works with 12V signal the changes I made to circuit to use 5V in front end may not be necessary.  Good news is using the K2 write up I was able to quickly trouble shoot the test board and find problem.

Logic levels and signal shapes are things I was trying to understand when doing testing as they were not always clear from the circuit drawings. 

Liked the additional details on new boards you added to document.

I am working on a couple of the new boards almost finished with K2 but having problem getting frequency out of 555 timer.  I had skipped the second set of control frequency resistors my test board so initial left of switch to select one.  Added switch but still only get out flat 5V signal.  I had use .01uF capacitor as that is what circuit diagram called for and what I used on my test card.  I noticed board label calls for .1UF so that may be problem.  I did check 555 chip in my test board and it works (I always use sockets for chips).

securesupplies

Re: The GMS Board Replication and DB37 in out connector Convert
« Reply #99, on December 22nd, 2020, 08:39 AM »Last edited on December 22nd, 2020, 08:42 AM
yes i know some times it helps to advance or redo when we see things in a new light,

doc is great helper, and now we can fill in new things we remember or re check
 i will review a again in a day or so to see thing missed or remembered
ar prsent we are going to audit the boms for k2 k3 k8 k11 so ,
if you firm the parts or spec we can change boms to match the test reports.
than people can have repeatable results faster and start at a  higher level from day 1
Dan