Home Blog Page 36

Mini Pallet Coasters, Make Your Own For $0.50

Make these awesome mini pallet coasters using just some glue and popsicle sticks. They’re really easy and cheap (around $0.50) to make and they look great around wooden or pallet furniture. They also make great gift wrap bases for soaps, bath bombs or other homemade gifts.

If you’re interested in making your own pallet furniture, have a look at Upcycling Wood Pallets Into Furniture.

Lets get started…

Wooden Pallet Coasters

What You Need To Make Your Own Wooden Pallet Coasters

What you need to make the wooden pallet coasters

Besides glue and popsicle sticks, you’ll need a few tools to help you out. Here’s what you’ll need to make your mini pallet coasters:

  • 15 Popsicle Sticks per Coaster – Buy Here
  • Wood Glue – Buy Here or Glue Gun – Buy Here
  • Ruler & Pencil or Marker
  • Scissors or Craft Knife or Side Cutters – Buy Here

You can decide whether to use wood glue or a glue gun, wood glue will last longer but it takes longer to make a coaster as you have to wait for the glue to dry between steps. The glue gun is much quicker but your coasters may collapse if you leave them in the sun or if you put something really hot on them. A mug of coffee or tea is usually fine as the mug doesn’t make contact all around the coaster and the wood keeps the heat from reaching all of the joints.

I’ve also said that you can use scissors, a craft knife or side cutters. The scissors are by far the hardest to use, popsicle sticks are quite strong. The craft knife is a bit easier but you need strong mat to cut on. The easiest thing to use is a good strong pair of side cutters or workshop scissors.

How To Make The Wooden Pallet Coasters

Open up your pack of popsicle sticks and put them into groups of 15. You should be able to make three to four coasters from a single pack of sticks. Try to choose the sticks that are as straight as possible. You can also decide if you prefer the grainy looking sticks with very visible wood grain on them or choose the sticks which are more uniform and don’t have a visible grain.

count out groups of 15 sticks

Next you’ll need to cut the round end off of the sticks. Use your ruler and pencil or marker to mark off the ends of the sticks, this will ensure that you cut the same amount off of each stick so that they are all the same length when you’re done.

mark off the edges to be cut from the sticks

Mark both ends of the sticks just underneath the end of the curved edge.

Once you’ve marked your sticks, use the scissors, craft knife or side cutters to trim off the piece that you have marked. Be careful when using the scissors or knife as you’ll have to apply quite a lot of pressure to cut through the sticks. As I’ve mentioned before, this step is a lot easier with side cutters or workshop scissors, but not everyone has these lying around.

trim the round edges off of the sticks

Trim all 15 of your sticks, more if you’re making multiple coasters.

Now that you’ve trimmed the curved edge off of your sticks, it’s you can begin putting the coasters together.

Start off by marking the centre point on two of your sticks, this will help you to place the three “planks” in the middle layer of your coaster. My sticks came out to be around 10cm (just under 4 inches) long, so I’ve marked the centre at 5cm (2 inches).

mark the centre of the popsicle sticks

Space the two marked sticks one stick length away from each other. The ends of the spacer stick should align with the outside edges of your marked sticks. These are going to form the base of your pallet.

lay your coasters out

Gluing With Wood Glue

You’ve got your basic coaster size, now it’s time to glue them together. As I’ve mentioned before, there are pros and cons of each glue type, if you’re impatient and want to get your coasters done quickly then go with a glue gun, if you’re willing to spend a bit more time and come out with longer lasting coasters then go with wood glue.

If you’re using wood glue, follow this step and skip the next. If you’re using a glue gun, skip this step and follow the next.

Put a drop of wood glue on each end and in the middle of both of your marked sticks.

drop of glue in three points

Now stick another 3 sticks between these drops along their thin edge (standing on their side). These three sticks are going to form the middle layer of your pallet.

three stick middle layer of pallet

Leave the glue to dry for about 10 minutes and then flip the pallet over to glue the remaining sticks onto the first side of your pallet.

Glue another 4 sticks between your two end sticks, taking care to space them evenly as you go.

glue another four sticks in place

Again, leave your pallet to dry for around 10 minutes before flipping it over.

Then glue the next 6 sticks onto the other side of the pallet. Two on the ends and the other 4 spaced out evenly between them.

glue sticks onto the other side

Allow your glue to dry completely and then pick up your coaster and touch up any areas which are not properly glued together.

Gluing With a Glue Gun

Using your glue gun, put a drop of glue onto the thin edge on the end of a stick and stick this onto the one side of your two marked sticks. Do the same for a second stick and stick it onto the other side and a last stick for the middle. These three sticks are going to form the middle layer of your pallet.

using a glue gun for the first layer

Flip the pallet over to glue the remaining sticks onto the first side of your pallet. Glue another 4 sticks between your two end sticks, taking care to space them evenly as you go.

adding the additional sticks

Flip it over again and then glue the next 6 sticks onto the other side of the pallet. Two on the ends and the other 4 spaced out evenly between them. Pick up your coaster and touch up any areas which are not properly glued together.

flip it over and stick to the other side

Finishing Touches

If you like a rustic, raw wood look then you can stop here. Repeat the previous steps to make as many additional coasters as you’d like.

If you’d prefer the edges to be neatly aligned, use a piece of sand paper and gently sand the high points on the edge of your coaster. When you’re done, all of the edges should be even and aligned with the stick in the middle layer.

sand the edges for an even finish

You can also apply paint or a wood stain to your coasters for a dark or coloured wood effect.

Make yourself the perfect lights to go with your pallet furniture and coasters – make your own pallet sconces.

Good luck with your mini pallet coasters, let me know how yours come out in the comments section below. We’d love to see your photos.

wood pallet coasters

How To Replace A Shattered Screen on an iPhone 7

Almost everyone who owns an iPhone has dropped it at some stage and no matter how well the cover protects it, occasionally the drop results in a cracked or shattered screen. Getting the screen replaced by the manufacturer is usually really expensive and in reality it is actually quite a simple fix. You can buy an affordable replacement from Amazon or eBay for around $20 – $40 dollars (depending on the quality) and it takes around a half hour to an hour to do if it is your first time.

In this guide, we’ll show you step by step how to replace your screen on your iPhone 7. Although this guide is done specifically on an iPhone 7, the iPhone 8 is very similar inside as well.

Most of the replacement screens you’ll find on Amazon or eBay come with the tools required to do the replacement as well. These tools are not the best quality but they do get the job done, you’ll just need to be careful not to strip the heads of the screw drivers as this is really easy to do.

Have a look at this guide if you’re looking to replace the screen on an iPhone 6 or 6s.

What You Will Need To Replace Your iPhone 7 Screen

  • Replacement Screen
  • iPhone Repair Tool Kit – Buy Here
    • Note – your replacement kit may come with a basic tool kit. This is usually good enough to get the job done but the screw driver heads often strip after a few screws.

How to Replace your iPhone 7 Screen

The replacement of your iPhone 7 screen is done in four stages, first you’ll remove the existing screen, then you’ll need to remove the components which you still need to use, then install these components onto the new screen and finally install the new screen on your iPhone.

The most important thing to keep in mind when doing this replacement is to keep your screws well organised. The screws inside your iPhone are different types, sizes and lengths and it is very important that you put the correct screws in the correct place. It is easy to get confused and lose track of your screws. I like to draw a quick sketch of each bracket or component and lay the screws onto the sketch over the hole they came out of.

The next thing you may not be familiar with is the ribbon cable connectors. These are very fine connectors which simply “snap” into place, similar to Lego. To separate them, you can slide your pry tool underneath the connector and pop it off. To connect them again, make sure that they two are correctly lined up and simply pressed down on top of the connector and you’ll feel it snap into place.

Here is the complete video guide to replacing the screen:

 

Here is a summary of the steps involved in replacing your iPhone screen:

  1. Turn off the iPhone.
  2. Use the pentalobe screw driver to remove the two screws at the bottom of the phone.
  3. Position the suction cup on the screen near the bottom in an uncracked section.
  4. Pull the screen away from the body of the phone and insert your pry tool to gently lift it away. Be careful not to stick the tool in too far or you might damage the ribbon cables.
  5. Slide the pry tool down the edges of the phone from the bottom to the top to loosen the side clips.
  6. Slide the screen down and out of the clips at the top of the body of the phone.
  7. Use the tri-point screw driver to remove the four screws on the battery and digitizer cover plate.
  8. Remove the cover plate and use your pry tool to unclip the ribbon cable connectors using your pry tool.
  9. Remove the two camera cover plate screws.
  10. Remove the cover plate and again use the pry tool to unclip the ribbon cable connectors.
  11. The old screen should now be free.
  12. Remove the four screws on the camera and ear piece cover plate on the old screen.
  13. Remove the cover plate and then the remaining two screws, the ear piece should then come loose.
  14. Use your pry tool to gently lift the ribbon cable assembly off of the screen body. Be careful not to pull the ribbon cable too hard or you may tear it or damage some of the components.
  15. Remove the four screws securing the home button assembly.
  16. Remove the cover plate, then unclip the ribbon cable connector.
  17. Fold the top connector back and then gently pry the ribbon cable assembly away from the screen body. Feed the home button assembly through the front of the screen.
  18. Remove the 6 screws securing the large cover plate on the back of the old screen.
  19. Gently pry the ribbon cable away from the back of this cover plate along the bottom edge.
  20. Position the cover plate onto the new screen and make sure that the ribbon cables are neatly positioned behind the cover plate without being folded over or crushed.
  21. Replace the 6 screws on this large cover plate.
  22. Replace the home button assembly, these is a small black plastic peg which is used to locate it.
  23. Clip in the ribbon cable connector.
  24. Replace the home button assembly cover plate and screws.
  25. Remove the adhesive strip cover on the top of the screen by the ear piece.
  26. Replace the camera sensor assembly and then the ear piece.
  27. Replace the cover plate and 6 screws to secure the components. Make sure that they are all in the correct positions and are aligned correctly. The components should not be forced or squashed by the bracket or they may break.
  28. Remove any left over sticky residue from the edges of the phone body. This residue forms a “gasket” which keeps the iPhone water resistant.
  29. If your replacement screen came with a replacement gasket, fit it now and make sure that it lines up with the edges of the phone body.
  30. Clip in the camera ribbon cable connector and replace the cover plate and 2 screws.
  31. Clip in the battery and digitizer ribbon cable connectors.
  32. You should now test the screen and make sure that everything works correctly before sticking the screen down with the new gasket. If it all works correctly then you can start closing up the phone. If not, check all of the ribbon cable connectors, they may not be seated correctly.
  33. Slide the top of the screen into the phone body.
  34. Then work from top to bottom pressing the sides of the screen down and onto the new gasket.
  35. Finally, snap the bottom edge into place and then replace the two pentalobe screws.
  36. Test the phone again to make sure that everything you’ve moved still functions correctly and you’re finished.

Good luck with the repair and let us know how it goes for you in the comments section below.

If you enjoyed this guide, you may be interested in these 5 Secret iPhone Codes You Didn’t Know About or find out how to Charge your iPhone Battery the Right Way.

Running An Artificial Neural Network On An Arduino Uno

In this guide, we will be looking at how to run an artificial neural network on an Arduino. This is the perfect project to learn about machine learning and the basics of artificial intelligence. The neural network in this example is a feed-forward backpropagation network as this is one of the most commonly used, the network concept will be described briefly in the background section.

Although we’ve used an Uno in this example, the network can be run on a Nano, Mega or Leonardo as well.

This project assumes you know the basics of Arduino programming, otherwise read our article on getting started with Arduino.

Background on Artificial Neural Networks

An artificial neural network is a mathematical computing model which is designed to mimic the way in which the brain reacts to sensory inputs. The brain is made up of millions of neurons which are connected to each other in huge networks. Each neuron is capable of being stimulated, much like a switch being turned on or off, and the state of the neuron turns surrounding neurons on or off as well depending on the level of activation of the neuron and the strength of the connection between the neurons. A neuron with a strong connection will have a greater level of stimulation than one with a weaker connection. Very simplistically, the neurons own level of stimulation is related to the sum of the stimulation it is receiving from all of the other neurons connected to it, and this is precisely how the artificial neural network works.

Let’s start off by understanding what exactly a backpropagation network is. The network itself is not a new concept, in fact they have been around since the 80’s and while they are based on some fairly complicated mathematics, you do not need to understand the mathematics in order to understand how the network functions.

So what is an artificial neural network? In short, an artificial neural network is a segment of code which learns how to respond to inputs based on example sets of inputs and outputs. They are very powerful tools and are rapidly finding their place in facial recognition, autonomous vehicles, stock market and sports predictions and even as far as websites suggesting products which you may be interested in. Their most powerful application lies in pattern recognition, where the exact input into the network is not known. There may be too little or too much information and it is up to the network to decide how it is processed. A good example of the application of an artificial neural network is in handwriting recognition. We are able to recognise letters and numbers but the exact shape of the characters varies from person to person, therefore the input into the neural network is never precisely known.  It is up to the neural network to identify the input and relate it to the relevant output.

In an artificial or software based neural network, a mathematical model of all of the neurons and their connections is created. An input is then fed into the network and the neurons systematically add up their inputs and produce an output into the next level of neurons until an output is reached.

One of the key principles in an artificial neural network is that the network needs to be trained. When the network is set up, random weights are applied to each of the connections. These weights provide a starting point for the network but will almost invariably provide “rubbish” outputs. A set of sample data is input into the network and the results are compared to the expected results. The weights are then adjusted and the input/output cycle repeated. This training cycle is repeated until the output data from the network matches the expected output data within a certain level of accuracy. This typically takes a few tens of thousands of training cycles depending on the complexity of the data and network.

In this example, we’re going to be building a three layer feed forward network, the three being the input layer, hidden layer and output layer as shown below.

3 Layer Feed Forward Neural NetworkIn the sketch in this article features a set of training inputs and outputs which map the seven segments of an LED numerical display to the corresponding binary number. The network runs through the training data repetitively and makes adjustments to the weightings until a specified level of accuracy is achieved, at this stage the network is said to have been trained.

The input and output training data:

LCD 7 Segment Display To Binary

You’ll need to run the Serial monitor on your Arduino IDE in order to see the progressive training and the final results. The program will send through a set of training data every one thousand cycles so that you can see how the network is “learning” and getting closer to the correct answers.

You can create your own training data to train your network on, have a look at the last sections in this guide for instructions on creating your own training data.

What You Need For Your Arduino Based Artificial Neural Network

  • An Arduino (Uno Used In This Guide) – Buy Here

How To Build Your Arduino Based Artificial Neural Network

Plug Your Arduino Uno Into A Computer

In this example, we are simply training a network with a predefined set of training data until a solution is achieved. This is the easiest and most basic way to get an artificial neural network running on your Arduino and it requires no connections to the input or output pins. You’ll simply need to plug your Arduino into your computer using the USB cable and you’re ready to upload the neural network code.

Understanding The Code

As stated before, the mathematics behind a neural network can be quite complex if you don’t have a strong mathematical background but fortunately you don’t need to understand the code to be able to use it and modify it to use your own training data. You should be able to follow the majority of the code through a simple understanding of arrays and loops.

Simplistically, the program establishes a system of arrays which store the network weights and the data being fed through the network. The data is then sequentially fed forward through the network and then the errors are back propagated through the network and the weightings adjusted.

Here’s a summary of the code operation:

  • Set up the arrays and assign random weights.
  • Start a loop which runs through each item of training data.
  • Randomise the order in which the training data is run through each iteration to ensure that convergence on local minimums does not occur.
  • Feed the data through the network calculating the activation of the hidden layer’s nodes, output layer’s nodes and the errors.
  • Back propagate the errors to the hidden layer.
  • Update the associated weights.
  • Compare the error to the threshold and decide whether to run another cycle or if the training is complete.
  • Send a sample of the training data to the Serial monitor every thousand cycles.

Uploading The Code

The best way to learn and understand how the code works is to run it and see on the Serial monitor how the solution to the training data is developed.

Here is the code:

//Author: Ralph Heymsfeld
//28/06/2018

#include <math.h>

/******************************************************************
 * Network Configuration - customized per network 
 ******************************************************************/

const int PatternCount = 10;
const int InputNodes = 7;
const int HiddenNodes = 8;
const int OutputNodes = 4;
const float LearningRate = 0.3;
const float Momentum = 0.9;
const float InitialWeightMax = 0.5;
const float Success = 0.0004;

const byte Input[PatternCount][InputNodes] = {
  { 1, 1, 1, 1, 1, 1, 0 },  // 0
  { 0, 1, 1, 0, 0, 0, 0 },  // 1
  { 1, 1, 0, 1, 1, 0, 1 },  // 2
  { 1, 1, 1, 1, 0, 0, 1 },  // 3
  { 0, 1, 1, 0, 0, 1, 1 },  // 4
  { 1, 0, 1, 1, 0, 1, 1 },  // 5
  { 0, 0, 1, 1, 1, 1, 1 },  // 6
  { 1, 1, 1, 0, 0, 0, 0 },  // 7 
  { 1, 1, 1, 1, 1, 1, 1 },  // 8
  { 1, 1, 1, 0, 0, 1, 1 }   // 9
}; 

const byte Target[PatternCount][OutputNodes] = {
  { 0, 0, 0, 0 },  
  { 0, 0, 0, 1 }, 
  { 0, 0, 1, 0 }, 
  { 0, 0, 1, 1 }, 
  { 0, 1, 0, 0 }, 
  { 0, 1, 0, 1 }, 
  { 0, 1, 1, 0 }, 
  { 0, 1, 1, 1 }, 
  { 1, 0, 0, 0 }, 
  { 1, 0, 0, 1 } 
};

/******************************************************************
 * End Network Configuration
 ******************************************************************/


int i, j, p, q, r;
int ReportEvery1000;
int RandomizedIndex[PatternCount];
long  TrainingCycle;
float Rando;
float Error;
float Accum;


float Hidden[HiddenNodes];
float Output[OutputNodes];
float HiddenWeights[InputNodes+1][HiddenNodes];
float OutputWeights[HiddenNodes+1][OutputNodes];
float HiddenDelta[HiddenNodes];
float OutputDelta[OutputNodes];
float ChangeHiddenWeights[InputNodes+1][HiddenNodes];
float ChangeOutputWeights[HiddenNodes+1][OutputNodes];

void setup(){
  Serial.begin(9600);
  randomSeed(analogRead(3));
  ReportEvery1000 = 1;
  for( p = 0 ; p < PatternCount ; p++ ) {    
    RandomizedIndex[p] = p ;
  }
}  

void loop (){


/******************************************************************
* Initialize HiddenWeights and ChangeHiddenWeights 
******************************************************************/

  for( i = 0 ; i < HiddenNodes ; i++ ) {    
    for( j = 0 ; j <= InputNodes ; j++ ) { 
      ChangeHiddenWeights[j][i] = 0.0 ;
      Rando = float(random(100))/100;
      HiddenWeights[j][i] = 2.0 * ( Rando - 0.5 ) * InitialWeightMax ;
    }
  }
/******************************************************************
* Initialize OutputWeights and ChangeOutputWeights
******************************************************************/

  for( i = 0 ; i < OutputNodes ; i ++ ) {    
    for( j = 0 ; j <= HiddenNodes ; j++ ) {
      ChangeOutputWeights[j][i] = 0.0 ;  
      Rando = float(random(100))/100;        
      OutputWeights[j][i] = 2.0 * ( Rando - 0.5 ) * InitialWeightMax ;
    }
  }
  Serial.println("Initial/Untrained Outputs: ");
  toTerminal();
/******************************************************************
* Begin training 
******************************************************************/

  for( TrainingCycle = 1 ; TrainingCycle < 2147483647 ; TrainingCycle++) {    

/******************************************************************
* Randomize order of training patterns
******************************************************************/

    for( p = 0 ; p < PatternCount ; p++) {
      q = random(PatternCount);
      r = RandomizedIndex[p] ; 
      RandomizedIndex[p] = RandomizedIndex[q] ; 
      RandomizedIndex[q] = r ;
    }
    Error = 0.0 ;
/******************************************************************
* Cycle through each training pattern in the randomized order
******************************************************************/
    for( q = 0 ; q < PatternCount ; q++ ) {    
      p = RandomizedIndex[q];

/******************************************************************
* Compute hidden layer activations
******************************************************************/

      for( i = 0 ; i < HiddenNodes ; i++ ) {    
        Accum = HiddenWeights[InputNodes][i] ;
        for( j = 0 ; j < InputNodes ; j++ ) {
          Accum += Input[p][j] * HiddenWeights[j][i] ;
        }
        Hidden[i] = 1.0/(1.0 + exp(-Accum)) ;
      }

/******************************************************************
* Compute output layer activations and calculate errors
******************************************************************/

      for( i = 0 ; i < OutputNodes ; i++ ) {    
        Accum = OutputWeights[HiddenNodes][i] ;
        for( j = 0 ; j < HiddenNodes ; j++ ) {
          Accum += Hidden[j] * OutputWeights[j][i] ;
        }
        Output[i] = 1.0/(1.0 + exp(-Accum)) ;   
        OutputDelta[i] = (Target[p][i] - Output[i]) * Output[i] * (1.0 - Output[i]) ;   
        Error += 0.5 * (Target[p][i] - Output[i]) * (Target[p][i] - Output[i]) ;
      }

/******************************************************************
* Backpropagate errors to hidden layer
******************************************************************/

      for( i = 0 ; i < HiddenNodes ; i++ ) {    
        Accum = 0.0 ;
        for( j = 0 ; j < OutputNodes ; j++ ) {
          Accum += OutputWeights[i][j] * OutputDelta[j] ;
        }
        HiddenDelta[i] = Accum * Hidden[i] * (1.0 - Hidden[i]) ;
      }


/******************************************************************
* Update Inner-->Hidden Weights
******************************************************************/


      for( i = 0 ; i < HiddenNodes ; i++ ) {     
        ChangeHiddenWeights[InputNodes][i] = LearningRate * HiddenDelta[i] + Momentum * ChangeHiddenWeights[InputNodes][i] ;
        HiddenWeights[InputNodes][i] += ChangeHiddenWeights[InputNodes][i] ;
        for( j = 0 ; j < InputNodes ; j++ ) { 
          ChangeHiddenWeights[j][i] = LearningRate * Input[p][j] * HiddenDelta[i] + Momentum * ChangeHiddenWeights[j][i];
          HiddenWeights[j][i] += ChangeHiddenWeights[j][i] ;
        }
      }

/******************************************************************
* Update Hidden-->Output Weights
******************************************************************/

      for( i = 0 ; i < OutputNodes ; i ++ ) {    
        ChangeOutputWeights[HiddenNodes][i] = LearningRate * OutputDelta[i] + Momentum * ChangeOutputWeights[HiddenNodes][i] ;
        OutputWeights[HiddenNodes][i] += ChangeOutputWeights[HiddenNodes][i] ;
        for( j = 0 ; j < HiddenNodes ; j++ ) {
          ChangeOutputWeights[j][i] = LearningRate * Hidden[j] * OutputDelta[i] + Momentum * ChangeOutputWeights[j][i] ;
          OutputWeights[j][i] += ChangeOutputWeights[j][i] ;
        }
      }
    }

/******************************************************************
* Every 1000 cycles send data to terminal for display
******************************************************************/
    ReportEvery1000 = ReportEvery1000 - 1;
    if (ReportEvery1000 == 0)
    {
      Serial.println(); 
      Serial.println(); 
      Serial.print ("TrainingCycle: ");
      Serial.print (TrainingCycle);
      Serial.print ("  Error = ");
      Serial.println (Error, 5);

      toTerminal();

      if (TrainingCycle==1)
      {
        ReportEvery1000 = 999;
      }
      else
      {
        ReportEvery1000 = 1000;
      }
    }    


/******************************************************************
* If error rate is less than pre-determined threshold then end
******************************************************************/

    if( Error < Success ) break ;  
  }
  Serial.println ();
  Serial.println(); 
  Serial.print ("TrainingCycle: ");
  Serial.print (TrainingCycle);
  Serial.print ("  Error = ");
  Serial.println (Error, 5);

  toTerminal();

  Serial.println ();  
  Serial.println ();
  Serial.println ("Training Set Solved! ");
  Serial.println ("--------"); 
  Serial.println ();
  Serial.println ();  
  ReportEvery1000 = 1;
}

void toTerminal()
{

  for( p = 0 ; p < PatternCount ; p++ ) { 
    Serial.println(); 
    Serial.print ("  Training Pattern: ");
    Serial.println (p);      
    Serial.print ("  Input ");
    for( i = 0 ; i < InputNodes ; i++ ) {
      Serial.print (Input[p][i], DEC);
      Serial.print (" ");
    }
    Serial.print ("  Target ");
    for( i = 0 ; i < OutputNodes ; i++ ) {
      Serial.print (Target[p][i], DEC);
      Serial.print (" ");
    }
/******************************************************************
* Compute hidden layer activations
******************************************************************/

    for( i = 0 ; i < HiddenNodes ; i++ ) {    
      Accum = HiddenWeights[InputNodes][i] ;
      for( j = 0 ; j < InputNodes ; j++ ) {
        Accum += Input[p][j] * HiddenWeights[j][i] ;
      }
      Hidden[i] = 1.0/(1.0 + exp(-Accum)) ;
    }

/******************************************************************
* Compute output layer activations and calculate errors
******************************************************************/

    for( i = 0 ; i < OutputNodes ; i++ ) {    
      Accum = OutputWeights[HiddenNodes][i] ;
      for( j = 0 ; j < HiddenNodes ; j++ ) {
        Accum += Hidden[j] * OutputWeights[j][i] ;
      }
      Output[i] = 1.0/(1.0 + exp(-Accum)) ; 
    }
    Serial.print ("  Output ");
    for( i = 0 ; i < OutputNodes ; i++ ) {       
      Serial.print (Output[i], 5);
      Serial.print (" ");
    }
  }


}

The code can also be downloaded through this link: ArtificialNeuralNetwork

Creating Your Own Training Data

Once you have the basic network running, you may want to try and input your own training data. To do this, you’ll need to modify the training data in the table as well as these items in the input parameters:

  • PatternCount – The number of items/row of training data in your table.
  • InputNodes – The number of neurons associated with the input data.
  • Output Nodes – The number of neurons associated with the output data.

In addition to the above parameters which have to be changed for the new training data, the following items can also be changed and experimented with to get different training results:

  • HiddenNodes – The number of neurons associated with the hidden layer.
  • LearningRate – The proportion of the error which is back propagated.
  • Momentum – The proportion of the previous iteration which affects the current iteration.
  • InitialWeightMax – The maximum starting value for the randomly assigned weights.
  • Success – The threshold at which the program recognises that it has been sufficiently trained.

You’ll may need to adjust some or all of these values in order to optimise the training process for your new training data. It is possible that a solution may never be reached and the training process gets stuck oscillating above and below the threshold infinitely, you’ll need to then adjust these values such that a solution is able to be reached. You can read up further on each of these parameters if you research and improve your understanding in how artificial neural networks work.

It is worth noting that the training data and network configuration provided in this example is about as large as you can run on an Arduino Uno without exceeding it’s 2K SRAM. If you’d like to experiement with a larger network, you’ll need to use an Arduino board with a larger SRAM allocation such as the Mega. Unfortunately, no warning is given by the IDE or the Arduino if the allocation is exceeded, you;ll just keep getting strange results and the network will be unable to be trained.

Obstacle Avoiding Robot Running A Neural Network

Tim Kälin has used this code as a basis for an obstacle avoiding robot which uses two ultrasonic modules connected to an ESP32 running the neural network to control it’s movements. The neural network has two inputs nodes from the ultrasonic modules and five output nodes, turn left, turn right, light left, light right and go straight

According to Tim it takes a minute or two to train the neural network on the data set when powered up. It also has some on-board LED strips which are used to display the inputs, hidden layer activation and selected outputs so that you get a visual representation of the neural network’s functioning.

It’s really impressive to watch.

The code is quite a bit more complicated than in this example due to the complexity of the project but it’s broken down quite well. You can download the code through this link – Neural Network Robot

What To Try Next

Once you’ve become familiar with artificial neural networks and you’ve tried experimenting with different training data, I’m sure you’d like to make use of the Arduino in a more practical way. Here are some ideas to take this project further:

  • Add an LCD or TFT display to your Arduino and send the training or output data to the display instead of to your Serial monitor.
  • Develop a network which responds to inputs to the Arduino. For example, you could use physical switches or photoresistors on the Arduino inputs to activate the input nodes and drive a “learnt” output.
  • Use the network to drive outputs on your Arduino. Add a motor or servo onto your Arduino which uses the neural network to response to inputs. For example you could make a servo arm shade screen which covers the Arduino when light falls onto a photoresistor.

Have you built your own artificial neural network? Tell us how it went and what you’ve used it for in the comments section below.

5 Genius Solutions to Common Kitchen Design Problems

Poor kitchen design can prevent you from using your kitchen in a seamless and efficient way. But the right design solutions will help ease your headaches and save you plenty of time. A complete kitchen renovation project is thus a perfect opportunity for you to fix any annoyances in your kitchen.

To help you out, here are some solutions to common kitchen design problems by Toby Walker from Zesta Kitchens.

1. Storage

Insufficient storage is one of the common kitchen design problems that result from poor planning. This can lead to frustration, mess and clutter. To fully maximize the space, you need careful and imaginative planning and expert help.

Most modern kitchens are equipped with numerous kitchen tools and appliances. Organizing all these implements has become a common challenge.

Incorporating an appliance cupboard in your kitchen design can be a good solution as this offers plenty of storage space. You can keep items here that often come out once or twice a year. It can also be home to vases of different shapes and sizes, platters and water jugs.

Another clever storage solution to consider is to include hidden spice racks and secret drawers in your design. Good kitchen design maximizes storage, helping owners keep bench tops clear and avoid a cluttered look.

2. Ventilation

Proper ventilation will allow the removal of steam, cooking smells and smoke in the kitchen. Otherwise, the smell can linger on your clothes and furniture, especially for properties with open-plan layouts.

When choosing a kitchen ventilation system, look for a high-quality model and the right size of ducting. This way, it fits perfectly on your chosen hood. Also, this will result in a quieter and effective extraction, leading to increased energy efficiency and making the unit less likely to incur damage.

Imagine how much noise your rangehood makes if you choose a model that has a noisy motor, which is also a common kitchen design mistake. This is crucial if your kitchen is huge enough that everyone often gathers in it. You should hear the television or comfortably converse with someone even while there’s cooking going on.

3. Countertop Space

Another common kitchen design problem is insufficient countertop or benchtop space. This can also be frustrating because your counter is essential for a huge number of tasks carried out in the kitchen.

Having sufficient benchtop space does not just offer convenience but promotes safety as well. You do not want to find yourself carrying hot food across your kitchen looking for the safest spot to set it down.

Homeowners often neglect to leave enough space opposite or next to an oven or a fridge – this can host extra counter space. Another excellent solution you can try is to get a movable island extension. A unit on wheels will give you flexibility if you need it most.

4. Rubbish and Recycling

Sufficient space for garbage management is also something that you may overlook. A small trash bin can often easily fit in a cabinet, allowing you to maintain the clean aesthetics of your kitchen. However, the reality is that only a small container can fit most cabinets. The bin may fill up too fast which means constant emptying for you.

Some of the most effective solutions to this problem are to get a container with bigger capacity, install a kitchen waste disposal unit, or bring in a bin with separate compartments. Rubbish removal services like Kwik Sweep will help you to get rid of an even greater amount of garbage in no time.

5. Task Lighting

Another complaint you might have is insufficient task lighting. This type of lighting is essential in any kitchen as it focuses direct light to specific sites. These include the stove, sink areas, and the countertop or benchtop.

Usually, counters for preparing food are positioned under the upper cabinets. Thus, these cabinets will cast shadows and even darken the surface if there is no additional lighting. The lack of light makes slicing, cutting and other food preparation tasks more challenging.

The best solution to this kitchen design problem is to install spotlights on the underside of upper cabinets and statement pendants over an island. By doing so, you successfully combine practicality with great visual impact.

Gone are the days when only one cook is in the kitchen. Today, one person is preparing in the countertop space while the others are cooking on the stove and searching for food in the ref.

A modern kitchen is now a busy place where you and your family members share the same space. Thus, you must be meticulous when planning your kitchen design. Most importantly, work with a kitchen designer who considers your habits, kitchen requirements and lifestyle.

If you found these solutions interesting, have a look at these useful kitchen tips and tricks or take on a DIY project and build your own kitchen island.

Using An Amazon Echo or Echo Dot Outside The US

By now you’ve probably seen videos or heard of a few of the popular smart home voice assistants out there, the Amazon Echo range, Google Home, Apple’s Siri integrated HomePod are all big competitors in the market. The Amazon Echo seems to be leading the pack in terms of functionality, speed and compatibility with third party products so I wanted to try one out. The issue is, I do not live in the United States. I managed to get one anyway and here’s my experience with the Amazon Echo and its functionality outside of the US.

How Do You Buy An Echo?

The main sales channel for the Amazon Echo range is through Amazon’s online store and while they’re been making an increasing effort to make their products available to the international market, you’ll see that if you choose a delivery location outside of the US, you’ll get a message saying that the product does not ship to locations outside of the US.

These are the most popular models available online from Amazon:

Amazon Echo (2nd Gen) -Buy Here

Amazon Echo Dot (2nd Gen) – Buy Here

Amazon Echo Spot – Buy Here

To get around the shipping issue, we used a US based forwarding service, more specifically MyUS. They essentially give you a US based address to ship your online purchases to and when the products arrive at the address, they forward them to your chosen international address and simply charge you a handling fee and the courier services fees. Its reasonably affordable and the service which they provided was fast and efficient. This is the first time I’ve used a package forwarding service so I don’t really have anything to compare it to but I was quite impressed with the service provided by MyUS and I’d probably use them again if required.

Amazon Echo Dot

My Echo dots (I ordered two just in case) arrived in just over a week from the date of ordering them from Amazon. This is quite impressive considering they had to be sent to the forwarder and then a further 18000 km (11000 miles) to my house.

Does It Work Outside Of The US?

If you’ve come here looking for a quick answer, in summary, yes it does work. Is it worthwhile getting? Definitely. Are you able to use all of the functionality and applications advertised? No, but almost all of the apps which do not require third party or location based services seem to work quite well.

To be more specific, the apps which do not work are those which have location based regulations such as some music and radio services (although these can be worked around by using a VPN) and those which require third party services such as food delivery, goods delivery and transport services.

While these apps don’t work and certainly do limit the functionality of the Echo a bit, there is still a lot that can be done with the Echo without these apps and services, especially from a smart home point of view.

I’ve been using the Echo for around three months now and I’ve found it to be quite useful for a couple of things we’ll get into a bit later.

Some Problems I Experienced And How I Solved Them

The Supplied US Plug

While the Echo supports voltages from 110VAC to 220VAC, the plug on the power adapter is a US plug. You can solve this problem by either using a local power adapter with the correct plug from your own country or by using a cheap plug converter from US to your local plug.

The Echo Dot is powered through a USB cables and comes with a USB power converter which also has a US plug. Again, you can either use your own USB power converter or use a cheap plug converter to plug the supplied adapter into your local plugs.

Epicka USB Adaptor

This USB travel adaptor works well for USB devices in different plugs around the world.

You Won’t Find The Alexa App

Because Amazon don’t sell the Echo outside of a few select countries, the Alexa app is only available in the App Store or Google Play Store in those countries. Being outside of one of these countries, I had to log out of my local App Store account and sign in to my US App Store account in order to download the app.

There are a number of guides available on the internet for opening US accounts for the Apple App Store or Google Play Store. Work through one of these and you’ll soon be able to download the app.

Note that on an iPhone you only need to log into the US store to download the app, you can then log back into your local store and the app will remain on your phone and function correctly.

If you don’t want to use your phone or open US stores, you can also set your Alexa up from your laptop.

Have you got storage space issues on your iPhone? Here’s some advice on how to free up some space on your iPhone.

What Works Well With The Echo Outside Of The US

Let’s start off with some of the basics I’ve found useful. I’m not going to list all of the things you can do with your Alexa, once you get one, Amazon will be sure to fill your mailbox with bi-weekly Alexa mails suggesting phrases and apps to “ask Alexa”.

I’ve been using the Echo for around 3 months and these are some of the things I use it for on a daily basis and some thing I’ve simply found to be entertaining.

Useful

Alexa, what is the weather today?  You’ll get a summary weather report for your current location. Once you’ve set your location in your Alexa app, this seems to work for almost any location where weather services are available around the world.

Alexa, do I have any meetings tomorrow?  You’ll be informed of any meetings or appointment scheduled in your calendar for the next day. This can be expanded to the week or a particular day as you need to.

Alexa, what can I make with mince? The recipes functionality is quite useful if you’re stuck for ideas for dinner, can’t find a recipe for a particular dish or you’re looking for something to make with a particular ingredient. You can get the recipe read out to you or sent to your phone to make it easier to follow.

Alexa, how many steps have I taken today?  Requires linking to your Fitbit app but provides an easy summary for your daily activity.

Alexa, who is leading the US Masters? This seems to work for most popular sports games, you can get real-time scores for most games.

Alexa, who is the current minister of finance? Who is questions work quite well and are location based. So if you ask who the current president is and you’re in Germany, you’ll get a different answer to the US.

Alexa, pair to my phone. You can pair your Echo to your phone using bluetooth and then play music stored on your phone using your Echo as a Bluetooth speaker. This is a useful stand in for not being able to us Amazon or Apple music directly through the Echo.

Alexa, turn on the living  lights. The Echo pairs well with the Philip Hue bridge to provide easy voice activated lighting. Turn lights on and off, dimmer or brighter and set scenes or moods using your voice. I’ve gone into this in a bit more detail later one.

Alexa, I want to watch TV. I’ve paired my Echo to a smart universal remote (see next section). This allows me to set routines such as this one. Telling Alexa I want to watch TV automatically dims the living room and dining room lights, turns the TV on and turns the audio system on. I can also say “I’m done watching TV” and the Echo will reverse these steps, turning the appliances off and the lights back to being bright.

Entertaining

Alexa, tell me a joke. You can also ask for a joke about cars, work, computers etc.

Alexa, give me a quote. You can also ask for a quote by a particular person.

Alexa, can you beat box?

Alexa, can you sing?

Alexa, can you rap?

Alexa, where are you?

Echo Compatible Smart Home Devices

One of the more exciting aspects of a smart home voice assistant is its ability to control your smart home devices. Along with the Echo, I ordered a Philips Hue starter kit, some extra Hue light bulbs and an RM Mini 3 smart universal remote to control my TV and audio system.

These are the products I bought:

Philips Hue Starter Kit

Philip Hue Bulbs 4 Pack

Philips Hue Wall Mount Switch & Remote

RM Mini 3 Universal Remote

Philips Hue 4 Pack

The Philips hue bulbs are quite pricey but once you’ve got them installed in your home, you’ll love them. They really make life a lot more convenient, especially when you’re away from home or you have pets. They enable you to set timers, use day/night functionality, arrival and leaving lighting and remotely operate your lights from your phone. I don’t really like the idea of having coloured lighting in my home so I saved quite a bit by simply ordering the Philips Hue white bulbs, they’re significantly cheaper than the coloured ones and still offer the smart and dimming functionality.

RM Mini 3

The RM Mini 3 universal remote is a small black cylinder which you mount somewhere in line of site of your TV and anything else you’d like to control. You can then copy your existing remote controls to the device through the app and use it to switch the devices on or off through your phone or through your Echo. The RM Mini 3 is quite a challenge to get up and running as there are two apps for it in the store and it’s not clear in the instructions which one to use for the Echo compatibility. Once I got it working, it’s easy to use and hasn’t required any further input to maintain.

These are just two of a huge range of smart home devices which are compatible with the Amazon Echo range and I’ve been really impressed with them. They work reliably and have survived power cuts and internet downtime without needing to be set up again.

Overall I’d definitely suggest the Amazon Echo, its a really reliable and well built voice assistant which has definitely been useful in our daily lives. If you’re not planning on using it for music then the Echo Dot is a great and affordable device that offers the same functionality as the Echo but without the powerful speaker. If you’re looking for a speaker and voice assistant then the Echo is definitely the way to go.

Have you used the Echo or any other smart home voice assistant? Let us know what you use them for in the comments section below.

If you enjoy tech, have a look at these 5 secret iPhone codes hardly anyone knows about.

Things to Look at When Choosing an HVAC Company Contractor

Is your HVAC system many years old now? This means that you may be looking to replace it in the next year or two. On the other hand, if your HVAC system is new, you will want to ensure that it works and runs properly by scheduling annual maintenance. Either way, sooner or later you will require an HVAC company to do the servicing.

Here are a few things you should consider when hiring one.

Licensing and Experience

Your HVAC system is probably one of the most expensive pieces of equipment in your house and you would want someone who has been properly trained in the field to be working on it. The person should have valid licensing through the HVAC company. In addition to this, the HVAC company should also have a minimum level of bonding and insurance. Insurance is to protect the homeowners in case of any accidental damage or injury.

You should also ask the contractor whom you are planning to work with about their experience. While longevity alone will not guarantee that a contractor will do a good job, the stability in the business will show you that the HVAC company is doing a good job and has a satisfied client base. You can also ask about the certifications which their contractors and the technicians have and you should see that the company has all of their licenses updated, you should keep details of these for future safety.

Home Evaluation

If you are looking to have an HVAC system installed, the potential contractors should offer a thorough evaluation to determine the best heating and cooling solution for your home. There are many factors which have to be taken into consideration. These include the square footage of the home, the level of insulation, the number of windows and their locations. The HVAC company should also inspect the ducting system for leaks, loose components and insulation. The size of the new system should not be determined solely on the basis of square footage, but on the calculations which are determined with the additional data which is fed into the calculation software.

Once you are done with the evaluation, the prospective contractor should give you a written itemized estimate which will help you to compare costs, warranties and energy efficiency among other proposals. You should never go to someone who simply offers you a low priced estimate, a better quality and a more efficient furnace or air conditioner would help you use less energy over the time.

Efficiency

Efficiency is one of the most important considerations. When you are shopping for an update in the system, you want to get the most efficient equipment which you can afford. You can ask the contractor about the energy ratings and consumption of each model. This will help you to compare prices and then see which one would offer you the best value for money in the long run. It is important to consider that a low upfront cost is quickly negated by a system which is designed poorly and therefore wastes a lot of energy. You’ll be better off in the long run spending a bit more money on a better quality system which is more efficient.

If you enjoyed this article, have a look at how to Take Your Home Off Grid The Smart Way.

5 Incredible Ways To Make Your Workshop Safe And Efficient

Are you looking to renovate your workshop? Are you enthusiastic about chemicals, wood, paint or cars? What is the budget for the place, and most importantly, how are you planning to make it safe and efficient?

Safety needs to be your primary concern because workshop accidents are pretty common. Taking expert help to safe-proof the area is not enough; you need to ensure that your activities do not cause any harm to you or your loved ones.

Read on to learn about ways that can keep your workshop safe to provide you with peace of mind, which will increase your efficiency noticeably.

1. Avoid Low-Quality Purchases

The primary issue with an in-house purchase is that you don’t worry about maintaining a standard for your purchase because there are no official checks. You always wish to save cost, which encourages you to buy the cheapest item you see. What you don’t realise is how dangerous it can be to prefer rates to quality. The equipment might break down and hurt you or your loved ones, or it may destroy your work entirely. So, you have to decide if a low-quality purchase is worth the risk or not.

2. No Harmful Chemicals or Tools

When you are dealing with a garage workshop, you have to understand what will be suitable for the place in terms of chemicals and tools. You cannot be invested in deadly chemicals or lethal tools that can cause damage to you or your loved ones. It needs to be a workshop that creates innovative, safe products, and where the process is not risky too. It can never be your laboratory; rather, only be a wood workshop, paint workshop or a car repair/modification workshop.

No harmful chemicals or tools

3. Innovative Decor

When you are looking to spend on decor, don’t just purchase the traditional workshop furniture and tools because the world is changing and convenience is gaining importance, which has led to the designing of innovative decor that has multifaceted uses. A stool that can double as a workshop table, a wall painting that can double as a storage space or a toolkit design that saves space while storing your workshop tools are some typical examples for you. This will allow you to spend wisely and decor more cleverly; ensuring utmost satisfaction and convenience. It will also increase your efficiency manifolds because convenience plus innovation encourages efficiency.

4. Control Entry

A steel grill or a digital security system are not the only solutions that will keep your loved ones out of the workshop, so it is always better to make them understand why is it dangerous for them to enter the area, especially kids. Your children will not recognise the severity of the space, which is why you need to prohibit unauthorised access to the area. Grounding them or cutting on their pocket money are some useful methods of persuading them. The security locks and alarms will inform you about the access, smoke or any other disruptive occurrence.

5. Man-Proofing

Just like you must have childproofed your entire apartment, you need to man-proof your workshop now. This does not only focus on the security aspects but on your leisure aspects too, like a mini-fridge for your beers; a small LED to keep up with the score and obviously a barcalounger for you to lie down when you are taking a break. You can always go to your bedroom, but why break the flow when you can rest right there? If you are comfortable and happy in your workshop, then it will undoubtedly increase your productivity notably.

Keeping workshop clean and organised

Keeping it clean and organised will also help prevent slips and encourage efficiency. Also have a look at these 5 projects to improve your workshop.

Safety! Innovation! Efficiency! The three pillars to ensure a secure, result-oriented workshop construction.

iPhone 6 Volume & Mute Button Replacement Guide

Here’s a complete guide to replacing the volume and mute button assembly on an iPhone 6. The repair fixes any problems you may have with the buttons sticking, not clicking or registering at all and problems with the phone not going into mute mode or switching rapidly between mute and normal mode. The repair is quite easy to do however it does take quite long as you need to remove both the screen assembly and the battery in order to get to the volume and mute button assembly. It is well worth it though as the replacement parts can cost as little as $3, far cheaper than taking your phone in for repairs.

Although this repair video is done on an iPhone 6, the process is fairly similar for the 6 plus.

If you’ve shattered or cracked your screen, we also a have a guide to replace your iPhone 6 screen.

What You Need To Replace Your iPhone 6 Volume & Mute Button Assembly

  • iPhone Toolkit – Buy Here
  • iPhone 6 Volume & Mute Button Assembly – Buy Here

The iPhone 6 plus is very similar internally to the iPhone 6 and this guide can be used for both models.

  • iPhone 6 Plus Volume & Mute Button Assembly – Buy Here

How To Replace Your iPhone Volume & Mute Button Assembly

Start out by finding yourself a nice well lit work surface on which to work. You’ll need a bit of space to lay out the components as you remove them and the screws are really small and easy to lose.

Make sure that you keep track of each component and its screws as you take them out, the screws are different lengths and you don’t want to damage components by putting the screws into the wrong places.  It helps to draw a small sketch of the components and place each screw on the sketch as you remove them, this way you’ll always remember which one goes where.

One area which is particularly difficult is getting the battery out of the compartment. It is stuck into place with really strong adhesive tape. Gently heating up the back of the iPhone case with a hair dryer or heater softens the adhesive a bit and makes it easier to remove. Be careful not to damage any of the ribbon cables for the side buttons near the top of the phone when you are prying underneath the battery.

For more information on removing the battery, have a look at our guide to the iPhone 6 battery replacement.

Good luck and enjoy the repair. If you found this video helpful, please like it and subscribe to my channel for more tech videos.

Top Landscaping Ideas for 2018

Every household should tell a story. Exterior space is just as important as interior in this regard, and gardens are by far the best outlet for creative expression. One can easily experiment with its appearance because the changes are not as lasting compared to the ones you can make on the very structure of your house. New trends always bring some new aesthetic ideas to the table, and checking them out is a good opportunity to light a spark of creativity. With that in mind, if you are in the mood for a garden makeover, here are top landscaping ideas for 2018.

Beach Landscaping

Beach landscaping

Do you ache for a house at the beachfront? Do you feel a tad bitter because you live in the harbor city, yet your lot is far removed from the sandy coastline? Well, you can easily “trick” your eye by opting for the beach landscaping style in your yard. This design choice has become very popular among people who live in continental areas and yet yearn for the “summer beach” feeling. The trick to this landscaping idea is all about rocks – this is why it is one of the most DIY friendly projects. Simply, start off by creating winding paths with gray-white gravel, but make sure the rocks are of similar sizes for the most aesthetically pleasing visual effect. Line your trails with bigger rocks, preferably the ones collected at the beach area. When it comes to plant life, you can go wild with a variety of tropical grass, agaves, Mediterranean shrubbery – essentially, anything that typically grows near the sandy beaches. Don’t pay too much attention to rows and lines when it comes to plant life; the more messy it appears, the more genuine it will look.

Japanese Garden

Japanese Garden

Traditional gardens from different corners of the world are always a good source of inspiration, and it appears Japanese ideas are about to blow up once more. It’s hard to deny the soft and graceful allure of such setup. Above all else, there is a sense of organic flow to Japanese gardens that are coupled perfectly with orderly appearance. Waterfalls, charming bridges and streams are the crucial elements that define this design choice, but you don’t have to waste money and clean water to get such appearance. You can fill the streams with sand instead. However, grovel is a better choice if you have a sizeable yard and you live at the location where winds tend to be strong. Pine trees, bamboos, and a variety of mosses are good starting choices when it comes to plant life, as well as the mini-trees, shrubbery, and succulents. Line your garden paths and corners with larger rocks pulled out of streams and faster rivers – the ones with a plate-like shape.

Modern Formalism

Modern formalism

As a stylistic trend, minimalism simply refuses to leave the spotlight due to a very obvious reason. It is one of the most elegant and simple solutions that compliment every space, and especially lend itself perfectly to the idea of making smaller environments feel larger. Therefore, turning your backyard garden into a formal oasis with clear outlines and a simple approach to design is always a good choice. However, opting for this style will definitely require some help from experienced landscaping professionals because it is much more sophisticated than it initially appears. In design, there is a saying: the simpler something truly elegant appears, the more effort went into it. Such design choice will definitely pay off in the long run as your garden will always look modern.

Open Air Rooms

Open air rooms

We have discussed types of garden landscaping, but what about the complimentary spaces like decks and porches? Well, in 2018, it’s all about going large, and open air rooms are the best way to truly indulge in your impeccable garden while still enjoying the comfort usually reserved for interior. In fact, you can create an open air living room in your backyard and take out the comfy couch, pillows, and coffee tables. It can be the largest room of your home.

Landscaping is a good outlet to test your creative limits and draw out the true you when it comes to aesthetics. Following contemporary trends, as well as looking backwards, can prove to be very helpful when it comes to defining your own idiosyncratic idea of a garden. This organic approach to landscaping is viable as long as you do not do it too often. Whenever you do something new and daring, wait a few years, and you’ll have enough overgrown material to serve as the new blank canvass.

If you enjoyed this article, have a look at these creative ways to use pebbles to upscale your garden or decorate your garden by turning an old tyre into an amazing pond.

iPhone Storage Full, Here’s What To Remove To Free Up The Most Space

If there’s one thing that is particularly frustrating when you own an iPhone, it’s trying to record a video or download an app only to be told that your iPhone’s storage space is full. If you’ve had your phone for a while, you’ve probably built up an awesome collection of photos, videos, messages, emails and apps and it can be quite a task to decide which to get rid of in order to free up some space.

Here’s a guide to help you find out which apps and files are taking up the most storage space and how you can make use of cloud storage or external devices so that you don’t have to lose your information permanently.

While you’re here, check out these 5 Secret iPhone Codes You Didn’t Know About.

Check Your iPhone Storage Details

To start with, you’ve need to find out what your biggest storage consumers are, you can bring up a quick list of the guilty parties by going to Settings > General > Usage. You’ll see a list of apps followed by how much storage space each is using.

iPhone storage usage

Now that you’ve got a list, here’s how to decide what to remove in order to free up some space.

Videos

Video files are usually one of the biggest storage users on your phone, especially HD video. In general, 1080 HD video uses up around 130MB of storage space per minute of video. this goes up to around 500MB per minute for 4K HD video.

If you use your phone for recording video, you should consider getting an external drive to store your video on or upload it to a cloud based platform as soon as you’re done. It won’t be long before 3-4 GB of space is used up when you’re filming.

Here are some of our favorite external drives which plug directly into you iPhone’s lightning port and provide user friendly apps to copy your content across. You can also save your videos, pictures and music to your drive and play them on your phone when you need to.

Sandisk 32GB iXpand Drive

SanDisk 32GB iXpand Flash Drive – Buy Here

iPhone Lightning Flash Drive 64GB

iPhone Lightning Flash Drive 64GB – Buy Here

Photos

One of the next biggest users of your storage space is likely to be your photos. Camera’s have become an integral part of our smartphones and our lives, we love taking and sharing pictures. A photo takes up anything from 3-8MB depending on the model of your phone and the camera settings.

The best thing to do is to delete your unused or unnecessary photos as you take them. I’m sure you don’t need fourteen pictures of your healthy lunch you had on Tuesday or the eleven pictures of your dog sleeping. Upload the ones you like and delete the duplicates.

Better yet, make use of Apple’s online photo storage facility by automatically uploading your photos to iCloud. This way you can delete them form your phone but have them always available online when you need them.

Apps

Most apps don’t take up that much space but it adds up quickly if you’re one who has an app for everything.

iOS provides a nice feature to “Offload Unused Apps”. This is also accessible in the storage view as done above.

Offload Unused Apps

Offloading unused apps essentially means that your app data and settings are retained but the actual application is removed from your phone for older apps which you haven’t used in a while. If you do decide to use the app again, you simply download it and it will install along with the data and settings which you had previously set up.

Music

Each song on your phone takes up around 3-10MB and storing music on your phone is not really neccissary anymore with services like Apple Music, Spotify, Amazon Music and Sound Cloud to name a few.

Keep a few songs or albums you enjoy on your phone and leave the rest to the online services.

This sums up our list of things to delete in order to free up some space on your iPhone. If you’re still having storage problems then you’ll probably need to consider getting a slightly larger phone on your next upgrade.

Are there any tips and tricks which we missed? Let us know how you keep your iPhone storage free in the comments section below.

Are you charging your iPhone battery correctly? Here’s a guide to charging your iPhone battery the right way.