Over the next few years there were a few more mods I completed on the supra. These include replacing all the bushes in the suspension, solid diff ear mounts, a front mount intercooler, upgrading to the Supra big brakes and chucking in a Defi boost gauge.

It sounds so easy in a list like that, however the suspension bushes took over a month of weekends by itself. For someone more mechanically experienced it would have been a lot quicker, but I was learning as I was going. Adding to the time was that we was unable to press the bushes out. They had corroded themselves in there so tight that we had to hand cut the metal rings for almost all of them. Then we had to heat and peel them out. It was a very labor intensive task, however it was definitely worth it. It had almost completely removed the axle tramp.

The other major mod in the list being the front mount intercooler. It would have been quite an easy installation if it wasn’t for one thing. I wanted a sleeper spec installation. Putting a front mount intercooler into a Supra basically means that a lot of the plastics have to go as well as the front active spoiler. It was a shame to see the spoiler go, but not a great loss aesthetically when I finally get a front lip installed. I have yet to remake all the plastic duct work that removed, so technically I still have not finished this install.

 

By Ryan Sevelj

 

Using the Supra as my daily driver had been great. It was comfortable, good on fuel if I was responsible and a pleasure to drive. Of course, using your car daily has its drawbacks. It was parked up in a mates front yard for his birthday party. During the night, someone from the party had backed into the front passengers quarter panel and decided to leave without telling me. The quoted repairs from the panel beaters was around $1200AUD. A significant figure to say the least. There had to be a better way!

Luckily I had another car that I could use to drive around in while repairs were underway. This left me the option of repairing it myself. After all it was a project car and I had bought it to learn about cars. This wasn’t what i had in mind originally, but I figured I would give it a go anyway. So borrowing a hammer and dolly from a friend, the panel got ripped off and I put my panel beaters hat on.

As it turns out this was a much bigger task than I had imagined. It was far more time consuming that I had expected much to my frustration. Fortunately for me, my old man was always helping me out and was a voice of reason, stopping me from rushing it. We started out by pushing the dent out so it was at least close to the shape it should be. Then using the hammer and dolly, we work out any creases and slowly shaped the panel back to original. You can see in the photo below all the tiny pock marks from the hammer. In real life it didn’t look anywhere near that bad.

In order to find any high and low points in the panel, we gave it a light coat with spray putty and gently sanded it back. This made it very easy to identify the high and low spots. It was then a matter of continuing to work the panel, using a combination of hammer and dolly as well as flat bars to get the shape we were after. By repeating this process over and over we were able to get a very good result in the final shape.

Once we had the shape right, we stripped the original paint work off. Then using spray on putty to remove the small marks from the hammer it was sanded down and prepped for priming. We didn’t have a spray booth at hand, so making the most of a few still days, we hid ourselves in the shed and started spraying. I am not certain what we did wrong but the paint ended up with an odd texture too it. Luckily it isn’t too noticeable, so I was happy to put the panel back on and get the old girl back on the road!

 

By Ryan Sevelj

 

One of the things that initially drew me into the Supra was the sequential twin turbo system. It seemed like a brilliant idea and I was very keen on trying it out. Unfortunately, the previous owner had modified the turbo system to run True Twin Conversion (TTC) mode. Through my reading on how to reverse the changes I found that it was possible to flick between the sequential system and TTC mode with the flick of a switch. Of course this seemed the best way forward for me, providing the best of both worlds. Looking around at the dash I couldn’t find a suitable place to hide the switch. That’s when I had the idea to put a false wall in an under radio pocket.

With the plan set, I went around purchasing the required parts and got working. First I painted the under radio pocket and cut a slit into it ready for the false wall. Then it was a matter of install the pocket into the radio cradle and wiring it all up. For an excellent write up on completing the ETTC mod read here.

 

By Ryan Sevelj

 

Quite a few years ago when I was not long out of school, I wanted a performance car. I was an apprentice at the time, earning apprentice wages and wanting an expensive car. So I saved like mad (Read: Mum and Dad paid for everything I needed) saving most of the cash over a 12 month period. The goal? A stock Toyota Supra MKIV so I could make the modifications I wanted and learn about cars along the way.

It took a few months for what I wanted to come along. I was reaching the point where I was considering going interstate, but it didn’t quite get that far. A supra had gone up for sale in Perth and I went and checked it out the following weekend. I knew before I had finished the test drive that this was the car for me. It was far from perfect but it was exactly what I was looking for. You really shouldn’t buy the first car you look at, but when you know, you know.

There was nothing major wrong with the car from what i could tell, but she needed some work. It had some severe axle tramp, which is not uncommon for the MKIV’s, as well as needing some aesthetic work on the inside. I was not overly concerned about the inside though, as she was going to become a dedicated track car in the future.

Finally I was able to pick her up. This is how she stood when I got her. Most of these photos are from the previous owner.

 

By Ryan Sevelj

 

Finally I got a chance to give some TLC to a rather neglected IBC system today. For the last few months it was getting nothing but fish food and water top ups. No new plants were added and nothing was really harvested. The time had come to try and get it back to its former glory.

Last week I took the time to plant a few seedlings into some coir peat pellets as a trial for growing my own seedlings in a controlled fashion. Often people will either sow their seeds directly into the grow media and hope for the best, or they start their seedlings in dirt and transplant them. I am hoping that using the coir peat pellets I will get greater control of plant location and remove the transplant stresses that can set a seedling back a week or more. Now that the seedlings are ready to put into the aquaponics system, it has forced me to tidy up the existing plants.

Some of the vegies like the beetroot and carrots just seemed to keep on growing, so rather than let them go for another 12 months, I decided it was time to harvest them and make the most of them. The largest of the two beetroot in the system was a monster, easily weighing in at 2 kg. The other beetroot was not far behind it. I also harvest all the garlic that was starting to show signs of being close to harvest time. Unfortunately one of the cloves had started to decompose but the rest were all harvested successfully. Finally the three carrots i put in there as a test were harvested. it looks like two of the carrots had grown so fat that they split up the sides and had started to get eaten by the worms. Straight into the worm farm they went. The third, which was the smallest appears to be OK.

I also had to wrangle the brahmi back under control after it tried to take over the grow bed again. The parsley was trimmed back a bit now it isn’t getting choked out by the monster beetroot and a few bits of dead wood were removed. This left the grow bed nice and empty and ready for the seedlings. The seedlings are as follows; 4 x English spinach, a mixed colour chilli, 3 x dwarf beans, a gold zucchini and a green zucchini. Unfortunately the chilli and green zucchini didnt germinate, so I will have to reseed those two at a later date. Now it is time to play the waiting game and see how these seedlings go in the coir peat.

Stay tuned for updates!

 

By Ryan Sevelj

 

In part 2 of setting up our OwnCloud server we get to the good part. That’s right we are going to actually get the server running!

Firstly we are going to download the image for a manual installation and then we are going to configure a basic running instance. First off lets create a temporary directory to download the OwnCloud files and download them. For me the latest version of OwnCloud was 5.0.12, you can check for the latest version at the OwnCloud link below.

mkdir ~/temp/
cd temp/
wget http://download.owncloud.org/community/owncloud-5.0.12.tar.bz2
tar jxf owncloud-5.0.12.tar.bz2

Next we want to make sure we have all of the dependencies of OwnCloud. Run the following commands to make sure we do. These are the dependencies listed on the OwnCloud site, if like me you plan on MySQL, then you should be able to omit the SQLite packages without any problems.

sudo apt-get install apache2 php5 php5-gd php-xml-parser php5-intl
sudo apt-get install php5-sqlite php5-mysql php5-pgsql smbclient curl libcurl3 php5-curl

Once they have installed correctly we can copy the OwnCloud files to our web server directory, which is /var/www/ First though, we want to remove the simple html file that is in our web server directory. Then we need to change the ownership to of the three following folders in our web server directory: apps/, data/ and config/ directories.

sudo rm /var/www/index.html
sudo cp -r ~/temp/owncloud/* /var/www/ 

Once the files have copied, we can test to see if they have copied correctly. Simple type the IP address of your server, in my case 192.168.2.100, into your web browser. Dont worry if you get errors, we still have some more configuring to do. One problem that I found when following the OwnCloud manual installation instructions was that the OwnCloud installation was unable to create a data/ directory. So I simply created it manually, not wanting to give the www-data user write privileges in the web server folder. Then we need to change the ownership to of the three following folders in our web server directory: apps/, data/ and config/ directories.

sudo mkdir /var/www/data/
sudo chown -R www-data:www-data /var/www/apps/
sudo chown -R www-data:www-data /var/www/data/
sudo chown -R www-data:www-data /var/www/config/

Now when you refresh the OwnCloud page in your browser you should get a login screen with an error about .htaccess. This is the next part of our configuration, which is apache itself. With security in mind, it seems a given that we should be using secure http for all access to our OwnCloud server. The first thing we need to do is generate our keys and then generate a Certificate Signing Request. To keep our file system tidy, lets do all the work in our temp directory. Firstly we need to generate our secure key which will ask for a pass phrase. If you want maximum security you should make it a complex password which you will have to enter every time apache restarts. If you want to leave the pass phrase, you can skip commands 3 – 5. I don’t want to have to enter the pass phrase on start-up however, so I am going to remove it. Once the password has been removed we then generate our CSR. It doesn’t really matter what information you put into the CSR, just remember the challenge password.

cd ~/temp/
openssl genrsa -des3 -out server.key 1024
openssl rsa -in server.key -out server.key.insecure
mv server.key server.key.secure
mv server.key.insecure server.key
openssl req -new -key server.key -out server.csr

Now we need to generate our Self Signed Certificate. I wanted my certificate to last for 10 years so I don’t have to worry about it, but you can change it to however long you want. Then it is just a simple matter of copying the certificate and key to the appropriate folders.

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private

Now we need to enable the SSL module in apache and make a backup of the config file before we update it. While we are working on modifying apache we will also enable the rewrite module. OwnCloud needs this enabled and it will save us an apache restart later down the track.

sudo a2enmod ssl
sudo a2enmod rewrite
sudo cp /etc/apache2/sites-available/default-ssl /etc/apache2/sites-available/default-ssl.backup sudo nano /etc/apache2/sites-available/default-ssl

Now change the following two settings to tell apache what key and certificate to use. These two settings are just below the SSLEngine on setting.

SSLCertificateFile    /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key

While we are in the default-ssl file we might as well make the necessary changes to stop the .htaccess error as well. At the top of the file change the first two AllowOverride from None to All. It should end up looking something like this.

<Directory />
                Options FollowSymLinks
                AllowOverride All
</Directory>
<Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
</Directory>

Save and exit the config file and restart apache.

sudo service apache2 restart

You should now be able to go to the https:// version of your site. If you check out the certificate information, you should see the information you entered while creating it.

The next step for me was to change where OwnCloud was storing its user data. I want the data to be stored on a NAS system that I have rather than on the local hard drive. This requires an entry into the fstab file so ubuntu will automount it at start-up. If you are happy with OwnCloud storing the user data on the local hard drive you can skip the next few steps.

sudo nano /etc/fstab

Then I added the following to the bottom of the file. This is for my specific setup, you will need to modify accordingly to suit your needs.

//192.168.2.101/homes /var/www/data cifs credentials=/home/<username>/.smbcredentials,uid=www-data,gid=www-data,file_mode=0770,dir_mode=0770 0 0

Save and exit. We then need to create a file called .smbcredentials which will hold our NAS login details.

sudo nano ~/.smbcredentials

Now enter you NAS login details then save and exit. Now we want to make the file so that only the root user can read it. That way any would be hackers need root access to be able to get your NAS login details.

sudo chmod 400 ~/.smbcredentials

If you were to try to read .smbcredentials now as a standard user, you will get permission denied. The next step is to tell ubuntu to go back through the fstab file and mount them all.

sudo mount -a

The data directory should now be pointing to you NAS. To test it out create a file or folder in the directory you pointed to on your NAS. Then if you list the files in the data directory of your OwnCloud server it should appear.

sudo ls -l /var/www/data/

Don’t worry, we are getting very close to being able to log in to our OwnCloud Server! Now we need to set up a MySQL database. If you are planning on using SQLite then you can skip the following steps. First we need to log into MySQL as the root user. Use the password you entered when you installed MySQL.

mysql -u root -p

Now enter the following commands. Change the username and password to what you want your database login details to be.

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS owncloud;
GRANT ALL PRIVILEGES ON owncloud.* TO 'username'@'localhost' IDENTIFIED BY 'password';
quit

Now if you go to your browser and navigate to your OwnCloud server we can log on. This first time you are entering the login details of your administrator user. You can choose any username and password combination that you want. You will also need to drop down the advanced section and enter the MySQL details you just made. If all has gone to plan you should be able to click Finish Setup and log in as your administrator.

Congratulations on setting up your very own OwnCloud server. I hope my log of what I did was useful to you. As always if you have any questions or comments hit me up below.

 

By Ryan Sevelj

 

Sources:

owncloud.org

https://help.ubuntu.com/lts/serverguide/certificates-and-security.html

https://help.ubuntu.com/lts/serverguide/httpd.html

Owncloud is the most advanced and user-friendly cloud software suite that I have been able to find. It is under active development and features are constantly being added. Today we will look at getting a simple web server set up with SSH access and simple security measures installed.

Here are the steps I used to set up my OwnCloud server. It is based on a fresh, updated install of Ubunter Server 12.04 LTS with the SSH server, LAMP server and samba server selected during installation. While I have taken all the steps I know of to set this up securely, I am not a security professional and this in no way represent advise. They are merely the steps I took to set up my own server. At the bottom of the post I will provide the sources for my information.

The first thing I did was set up a static IP address for the server. This will make it much easier to use SSH, which is my preferred method to access the machine.

sudo nano /etc/network/interfaces

I then changed the interface I was using as follows.

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.2.150
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
gateway 192.168.2.1
dns-nameservers 192.168.2.1

After saving and exiting nano, the networking service needs to be restarted. This will make it use the new settings.

sudo /etc/init.d/networking restart

Once the service has restarted you should now be able to ping the outside world to test the new settings. It is now a simple matter for me to use SSH to remotely access my server using the following command from my laptop. When prompted for the password, simply use the password you created for the user on your server.

ssh <username>@192.168.2.150

Now that we have made our lives a little more easy and comfortable with our laptop access we need to make ourselves a cuppa. Now we can think about serious things like security for our server. I am not going to flog a dead horse and repeat all the great information that the good folks around the internet have put up, so just check the links if you want to see why I done things the way I have. The first thing I wanted to do was to secure my SSH further. The first step was to generate SSH keys, this allows me to disable password access via SSH making much harder to brute force guess the password. The first step is to generate the keys on your laptop and then copy them to the server. It is recommended that you choose a strong pass-phrase for you SSH keys as this will slow anyone down who has stolen you key from accessing your server.

ssh-keygen -t rsa -b 4096
ssh-copy-id @192.168.2.150
ssh-add

Now you should be able to access your server with SSH without having to enter your users password. If you still have to enter the password try rebooting both machines. If that still has not given you password less access then check the troubleshooting in the links below. If you continue on with the following steps you will lock yourself out from SSH access if your keys are not working! You have been warned. Now, onwards and upwards.

The next step is to lock SSH down a bit. Firstly, we will change the ssh port, disable access by password authentication, prevent the root user from being able to log in, limit which users can gain access via SSH, increase the access logging level and add a banner. Sounds like quite a lot, but fortunately it is all in a single SSH configuration file. Before we make any changes though, it is always a good idea to make a backup of the config file and make it read only.

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults
sudo chmod a-w /etc/ssh/sshd_config.factory-defaults

Now we are set to make our changes.

sudo nano /etc/ssh/sshd_config

Find the following lines and make sure they are the same as below. Again there is more info in the links below. I had to add the AllowUsers line to the bottom of the config file. Note here that I did not use port 1234, that is just an example. I recommend that you choose a random port number too.

Port 1234
PasswordAuthentication no
PermitRootLogin no
LogLevel VERBOSE
Banner /etc/issue.net
AllowUsers

Save the changes and exit the sshd_config file. Now we need to make our banner. You can put any information you want on your banner. I chose to put the legal mumbo jumbo that is on the Ubuntu help page.

sudo nano /etc/banner.net

Save the changes and then restart the SSH server.

sudo restart ssh

The next time you go to SSH into your server you will need to change you command as follows. The 1234 should be the port you specified in your sshd_config file.

ssh <username>@192.168.2.150 -p 1234

The next step I took was to secure MySQL a bit more. MySQL has a built-in tool that will automatically go through and secure it for you. The only default I didn’t go with through this tool was the change the root password. This was because i had already set my password during the server installation process.

sudo mysql_secure_installation

The final step I took was install to Fail2ban. This is a handy program that will monitor your system logs and try to block any malicious activity.

sudo apt-get install fail2ban

We then just have to configure fail2ban for our setup.

sudo nano /etc/fail2ban/jail.conf

These are the changes to the config file that I made.

[DEFAULT]
bantime = 6000

[ssh]
port = 1234
maxretry = 3

[apache]
enabled = true

Save the changes and exit the file. I then rebooted the system before progressing on.

sudo reboot

In Part 2 of setting up your personal OwnCloud server, we will take a look at getting it downloaded and set-up. If you have any tips or suggestions feel free to drop a comment below. Stay tuned for the next instalment.

 

By Ryan Sevelj

 

Sources:

https://help.ubuntu.com/community/SSH/OpenSSH/Configuring

https://help.ubuntu.com/community/SSH/OpenSSH/Keys

http://www.fail2ban.org/wiki/index.php/Main_Page

The Arduino is one of those micro-controllers I have been holding off using because I was worried about learning C/C++. Yet another programming language to learn was not a task I wanted to undertake, no matter how common it was. I don’t recall what the catalyst was to finally get me to purchase an Arduino clone board, but i have one now and so I am learning how to program it.

The clone board I purchased was a Freetronics Ethermega 2560 along with a Freetronics 16×2 LCD shield and a Freetronics 128×128 OLED module. I figured that a good place to start would be to get the age old ‘Hello, World’ displaying on the 16×2 LCD shield. By following along with the Freetronics documentation I successfully loaded up their demo sketch and had ‘Hello, World’ showing. Great! Although a little boring.

Progressing to the next demo got the buttons under the screen working. All 5 buttons go to the same analog input pin, so it is a simple matter of using the pins ADC feature to determine which button is being pressed. Not that much more exciting, but it does require the use of a little logic.  One thing that became very apparent to me early on was that there was no code collapsing in the Arduino IDE. I could see programs becoming massively long and rather difficult to read.

It was here that I learnt about the Arduino IDE tabs feature. It is a very handy feature that will append the tabs to the bottom of the main program in alphabetical order, allowing you to break it up into manageable chunks. Unfortunately for me, I wanted to move the defines into another tab. This would break the program though because the defines need to be at the start of the program, not in the middle somewhere. The solution is to add a ‘.h’ to the end of the file name, making it a header file. Then at the start of your main program, you simply include the file. See my attached code to see what I mean.

#include <Wire.h>
#include <LiquidCrystal.h>
#include "defines.h"

LiquidCrystal lcd(8,9,4,5,6,7);

void setup()
{
  lcd.begin(16,2);
  pinMode(BUTTON_ADC_PIN, INPUT);
  digitalWrite(BUTTON_ADC_PIN, LOW);
  lcd.setCursor(0,0);
  lcd.print("OMGWTFBBQSAUCE!!");
  lcd.setCursor(0,1);
  lcd.print("Button:");
}

void loop()
{
  byte output = 0;

  output = readButton();

  lcd.setCursor(8,1);
  switch(output)
  {
    case 0:
    {
      lcd.print("        ");
    }
    case 1:
    {
      lcd.print("Right");
      break;
    }
    case 2:
    {
      lcd.print("Up");
      break;
    }
    case 3:
    {
      lcd.print("Down");
      break;
    }
    case 4:
    {
      lcd.print("Left");
      break;
    }
    case 5:
    {
      lcd.print("Select");
      break;
    }
  }
}

 

byte readButton()
{
  unsigned int buttonVoltage;
  byte button = 0;

  buttonVoltage = analogRead(BUTTON_ADC_PIN);

  if (buttonVoltage < (RIGHT_10BIT_ADC + BUTTON_HYSTERESIS))
  {
    button = 1;
  }

  else if (buttonVoltage >= (UP_10BIT_ADC - BUTTON_HYSTERESIS) && buttonVoltage <= (UP_10BIT_ADC + BUTTON_HYSTERESIS))
  {
    button = 2;
  }

  else if (buttonVoltage >= (DOWN_10BIT_ADC - BUTTON_HYSTERESIS) && buttonVoltage <= (DOWN_10BIT_ADC + BUTTON_HYSTERESIS))
  {
    button = 3;
  }

  else if (buttonVoltage >= (LEFT_10BIT_ADC - BUTTON_HYSTERESIS) && buttonVoltage <= (LEFT_10BIT_ADC + BUTTON_HYSTERESIS))
  {
    button = 4;
  }

  else if (buttonVoltage >= (SELECT_10BIT_ADC - BUTTON_HYSTERESIS) && buttonVoltage <= (SELECT_10BIT_ADC + BUTTON_HYSTERESIS))
  {
    button = 5;
  }

  return(button);
}

 

#define BUTTON_ADC_PIN              A0

#define RIGHT_10BIT_ADC             0
#define UP_10BIT_ADC                145
#define DOWN_10BIT_ADC              329
#define LEFT_10BIT_ADC              505
#define SELECT_10BIT_ADC            741
#define BUTTON_HYSTERESIS           10

An important thing to note here is that “” is used for the defines.h include unlike <> for the other includes. This is because defines.h is in the same folder as LCD_Playaround, where as the other two files are in the Arduino Library.

Here is the final result. Nothing spectacular by any stretch, but a nice easy introduction to working with the Arduino micro-controllers. One thing that I did find that i should mention, there is a well documented error within the Arduino 1.0.5 IDE that prevents you from uploading a sketch if you have three exclamation marks in a row. For example if you had the following you could not upload your sketch.

lcd.print("!!!");
lcd.print("OMG!!!");

 

Well finally a chance to update on the IBC again. It has been a bit hectic at work and i have barely had a chance to touch the system. As you can see in the plant conditions. The silvers are still healthy although their growth has slowed down due to the cold weather really coming in.

There really isn’t a huge amount to report, other than a few new herbs going in the side grow bed. You can see in the basil and english spinach that the iron levels are a little low. I have dosed it with a bit of seasol and iron chelate to try and help boost those levels.

Finally a chance to update on the bike. Work has been progressing slowly. The frame, sub-frames and engine cradles have been powder coated. The colour is a lot lighter than i exxpected, but i think i will put it all together and see how it looks. More parts have been arriving regularly and i am getting close to the point where i will be able to start putting a few pieces together.

I also picked up another almost complete FZ750, which i am considering rebuilding once i have finished this one. Until that time, it will be a parts bike.