Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - branx86

Pages: [1] 2 3 ... 13
General Discussion / HTML Code to refresh Iframe every 5 seconds
« on: February 16, 2019, 08:43:59 PM »

<script type="text/javascript">
   setInterval(refreshIframe, 5000);
   function refreshIframe() {
       var frame = document.getElementById("Frame");
       frame.src = frame.src;

<iframe id="Frame" src="" frameborder="0"></iframe>

Linux Fixes / Xibo install
« on: December 31, 2018, 03:34:49 PM »
st finished the install. Hope can save someone’s time. Please fell free to modify, amend and comment.

Avoid using Chrome on install, it has strange problem.

Install CentOS minimum. I use CentOS-7.2.1511-x86_64 then update.

Install net-tools and editor if not using vi.
Disable /etc/sysconfig/selinux

sudo yum -y install httpd
sudo systemctl enable httpd
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload

yum install -y epel-release
rpm -Uvh 102

PHP 5.6
rpm -Uvh 77

The following work for me.
yum install -y php56w php56w-opcache php56w-common
yum install -y php56w-pear php56w-devlop.x86_64
yum install -y php56w-devel php56w-intl php56w-soap php56w-mcrypt json
yum install -y php56w-pdo php56w-gd
yum install -y php56w-mysql
yum install -y php56w-mbstring

Install MariaDB
yum -y install mariadb-server
systemctl enable mariadb
systemctl start mariadb

Prepare compile zeromq
yum -y group install “Development Tools”

Download zeromq.
tar zxvf zeromq-4.2.0.tar.gz
make install
pecl install zmq-beta
edit /etc/php.ini and add 110

Extract cms to /var/www/xibo18.
Edit /etc/httpd/conf/httpd.conf change
DocumentRoot “/var/www/xibo18/web”
<Directory “/var/www/xibo18/web”>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
Require all granted

chown -R apache:apache /var/www/xibo18

“listenOn”: “tcp://IP_ADDR:50001”,
“pubOn”: [“tcp://IP_ADDR:9505”],
“debug”: false

EDITOR=joe crontab -e
’* * * * * /usr/bin/php /var/www/xibo18/bin/xtr.php’

Edit /etc/php.ini
max_execution_time = 120
memory_limit = 256M
post_max_size = 256M
upload_max_filesize = 256M 110
date.timezone = TIME_ZONE

systemctl restart httpd



Raspberry Pi / Upgrade raspberry Pi Distro
« on: December 14, 2018, 08:44:36 PM »
1 sudo apt update

2 sudo apt dist-upgrade

3 sudo apt clean

4 sudo reboot

5. Done

Raspberry Pi / Show Boot text on bootup
« on: December 14, 2018, 08:01:11 PM »
Just edit the /boot/cmdline.txt file, and remove the quiet directive.

# cat /boot/cmdline.txt
#dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=xxxxxxxx-yy rootfstype=ext4 elevator=deadline rootwait quiet splash plymouth.ignore-serial-consoles

cp /boot/cmdline.txt ~/boot_cmdline_bak.txt
sudo nano /boot/cmdline.txt

Windows Fixes / gpresult to find out all the members Of
« on: December 03, 2018, 09:44:04 AM »
gpresult/Z     to find out all the members Of  in AD

General Discussion / Knock Apart Utility Table
« on: November 15, 2018, 03:29:05 PM »

This table is made from a full sheet of 5/8-in. plywood for the interlocking base stand and a sheet of 3/4-in. plywood for the work surface and shelves. You’ll also need four 10-ft. lengths of 1×3 pine for the edge banding and cleats.

Cut two 30-in. high by 48-in. long pieces from the 5/8-in. plywood for the base pieces. Then cut a slightly oversize 5/8-in. wide slot in the bottom half of one base and in the top half of the other. Make both slots about 15-1/2 in. long. Assemble the base and position the top so the corners are aligned with the legs. Screw loose fitting 12-in. long 1x3s along each side of each leg to hold everything stable.

The table is much more stable if you use the 3/4-in. waste from the top to make triangular braces (which also act as shelves) with 20-in. long sides. Using 1-1/4 in. drywall screws, attach 1x2s to the base about 12 in. up from the floor and screw the shelves down.

General Discussion / Cheap OSB WorkBench
« on: November 13, 2018, 08:26:37 AM »
Made from four 8'  2x4's
One 2x4,about6' long
Two large OSB  7/16"Thick 3"Deck Screws  1-5/8"Deck Screws

Arduino / Arduino - Web-Based Joystick
« on: November 01, 2018, 09:12:27 AM »

Components and supplies
1 - Arduino UNO or  Genuino UNO
1- WiFi Shield for Arduino
2- Servo Motors


    Stack PHPoC WiFi shield or PHPoC Shield on Arduino

    Connect pin GND and VCC of two servo motors to GND and 5V of Arduino, respectively. (pin IOREF of arduino can be used like 5V pin)

    Connect pin signals of two servo motors to pin 8 and pin 9 of Arduino, respectively.

What We Need to Do

    Set Wifi information for PHPoC shield (SSID and password)

    Upload new UI to PHPoC shield

    Write Arduino code

Setting Wifi Information for PHPoC Shield

See this instruction.

Upload new Web UI to PHPoC Shield

    Download PHPoC source code remote_joystick.php (on code section).

    Upload it to PHPoC shield using PHPoC debugger    according to this instruction

Write Arduino Code

    Install PHPoC library for Arduino on Arduino IDE (see the instruction )

    See source code in code section.

Try it

    Click serial button on Arduino IDE to see the IP address.

    Open web browser, type http:// replace_ip_address/remote_joystick.php

    Click connect button and test it.

Arduino / Arduino web led control
« on: October 30, 2018, 03:42:03 PM »
  Program:      eth_websrv_LED

  Description:  Arduino web server that serves up a web page
                allowing the user to control an LED
  Hardware:     - Arduino Uno and official Arduino Ethernet
                  shield. Should work with other Arduinos and
                  compatible Ethernet shields.
                - LED and resistor in series connected between
                  Arduino pin 2 and GND
  Software:     Developed using Arduino 1.0.3 software
                Should be compatible with Arduino 1.0 +
  References:   - WebServer example by David A. Mellis and
                  modified by Tom Igoe
                - Ethernet library documentation:

  Date:         11 January 2013
  Author:       W.A. Smith,

#include <SPI.h>
#include <Ethernet.h>

// MAC address from Ethernet shield sticker under board
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(10, 0, 0, 20); // IP address, may need to change depending on network
EthernetServer server(80);  // create a server at port 80

String HTTP_req;          // stores the HTTP request
boolean LED_status = 0;   // state of LED, off by default

void setup()
    Ethernet.begin(mac, ip);  // initialize Ethernet device
    server.begin();           // start to listen for clients
    Serial.begin(9600);       // for diagnostics
    pinMode(2, OUTPUT);       // LED on pin 2

void loop()
    EthernetClient client = server.available();  // try to get client

    if (client) {  // got client?
        boolean currentLineIsBlank = true;
        while (client.connected()) {
            if (client.available()) {   // client data available to read
                char c =; // read 1 byte (character) from client
                HTTP_req += c;  // save the HTTP request 1 char at a time
                // last line of client request is blank and ends with \n
                // respond to client only after last line received
                if (c == '\n' && currentLineIsBlank) {
                    // send a standard http response header
                    client.println("HTTP/1.1 200 OK");
                    client.println("Content-Type: text/html");
                    client.println("Connection: close");
                    // send web page
                    client.println("<!DOCTYPE html>");
                    client.println("<title>Arduino LED Control</title>");
                    client.println("<p>Click to switch LED on and off.</p>");
                    client.println("<form method=\"get\">");
                    HTTP_req = "";    // finished with request, empty string
                // every line of text received from the client ends with \r\n
                if (c == '\n') {
                    // last character on line of received text
                    // starting new line with next character read
                    currentLineIsBlank = true;
                else if (c != '\r') {
                    // a text character was received from client
                    currentLineIsBlank = false;
            } // end if (client.available())
        } // end while (client.connected())
        delay(1);      // give the web browser time to receive the data
        client.stop(); // close the connection
    } // end if (client)

// switch LED and send back HTML for LED checkbox
void ProcessCheckbox(EthernetClient cl)
    if (HTTP_req.indexOf("LED2=2") > -1) {  // see if checkbox was clicked
        // the checkbox was clicked, toggle the LED
        if (LED_status) {
            LED_status = 0;
        else {
            LED_status = 1;
    if (LED_status) {    // switch LED on
        digitalWrite(2, HIGH);
        // checkbox is checked
        cl.println("<input type=\"checkbox\" name=\"LED2\" value=\"2\" \
        onclick=\"submit();\" checked>LED2");
    else {              // switch LED off
        digitalWrite(2, LOW);
        // checkbox is unchecked
        cl.println("<input type=\"checkbox\" name=\"LED2\" value=\"2\" \

Linux Fixes / SSH Installing/Configuring PuTTy and Xming
« on: October 18, 2018, 01:35:31 PM »
Installing/Configuring PuTTy and Xming

Most of us connect to the CTM server via a PC running Windows, essentially making the PC a terminal. The PC interacts with the server through the X-windows system, forwarding the display from the server to the PC. Software must be installed on the PC to make this link work and the best software (so far) for this task is the PuTTy terminal emulator and the Xming X-window client.

PuTTy can be downloaded from
Xming can be downloaded from

Once PuTTy and Xming have been downloaded to the PC, install according to their respective instructions.

Configuring Xming
Once Xming is installed, run the application called 'XLaunch' and verify that the settings are as shown:

Save the configuration and close XLaunch

Configuring PuTTy
After installing PuTTy, double-click on the PuTTy icon on the desktop and configure as shown:

The most important setting is the X11 Forwarding. Without that set, the X-window system cannot find your PC for display. Save the configuration by typing a name (i.e. CTM) in the box under 'Saved Sessions' on the Sessions screen. Press the Save button to save the configuration. Click Open to open the terminal window or Cancel to close PuTTy.
The next time PuTTy is run, the session named CTM will be shown. Select CTM with the mouse and click Open to launch.

Arduino / ESPDUINO Setup and Relay
« on: September 26, 2018, 10:30:24 AM »

Setup IDE use 1.6.8 2016/01/05
Change the Additionl Boards Maagers URLs:


The Define pins in your Sketch use:
#define D0 2
#define D1 12
#define D2 3
#define D3 11
#define D4 4
#define D5 5

***********CH341SER Driver MUST be loaded to see the ESPDUINO*********

________Start of sketch that works with a single relay on pin D5=5 _____________________________________
 * ESP8266 (ESPDUINO) WiFi Relay Control
 *Brandon Robertson
#include <ESP8266WiFi.h>
#define D5 5
const char* ssid = "ssid";
const char* password = "password";
int ledPin = D5;
WiFiServer server(80);
void setup() {
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  // Connect to WiFi network
  Serial.print("Connecting to ");
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
  Serial.println("WiFi connected");
  // Start the server
  Serial.println("Server started");
  // Print the IP address
  Serial.print("Use this URL : ");
void loop() {
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client) {
  // Wait until the client sends some data
  Serial.println("new client");
  // Read the first line of the request
  String request = client.readStringUntil('\r');
  // Match the request
  int value = LOW;
  if (request.indexOf("/LED=ON") != -1) {
    digitalWrite(ledPin, HIGH);
    value = HIGH;
  if (request.indexOf("/LED=OFF") != -1){
    digitalWrite(ledPin, LOW);
    value = LOW;
  // Return the response
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  do not forget this one
  client.println("<!DOCTYPE HTML>");
  client.print("Led pin is now: ");
  if(value == HIGH) {
  } else {
  client.println("Click <a href=\"/LED=ON\">here</a> Turn relay ON<br>");
  client.println("Click <a href=\"/LED=OFF\">here</a> Turn relay OFF<br>");
  Serial.println("Client disconnected");

Linux Fixes / Send Gmail Mail from Application
« on: September 19, 2018, 08:20:35 PM »
Installing a Mail Client

For this solution you'll need a throwaway Gmail account, as you are going to specify your Gmail password in a configuration file.

Start by installing the tools you'll be using to send emails:

sudo apt-get install ssmtp
sudo apt-get install mailutils
sudo apt-get install mpack

Next, run:

sudo nano /etc/ssmtp/ssmtp.conf

and ensure that file contains the following configuration parameters, making sure that  your Gmail account credentials are in place:


Finally send a test email with an attachment from the target_dir directory:

mpack -s "Test Email" [target_dir/filename] [recipientEmailAddress]

If this mail arrives you are good to go to the next step.

Pages: [1] 2 3 ... 13