Author Topic: Phone sensor fusion demo  (Read 1298 times)

Offline haversin

  • High Voltage Experimenter
  • **
  • Posts: 61
  • Karma: +5/-0
    • View Profile
Phone sensor fusion demo
« on: September 21, 2023, 09:22:14 PM »
Phyphox app was used to send accelerometer, magnetometer and gyro data over wi-fi using Http requests to a Python script running on a pc. The phone orientation in space was calculated two ways: 1) using accelerometer and magnetometer data only and 2) using a Complementary filter on the accelerometer, magnetometer and gyro data. The results are shown in this video.


Offline Fumeaux

  • High Voltage Experimenter
  • **
  • Posts: 82
  • Karma: +7/-0
    • View Profile
Re: Phone sensor fusion demo
« Reply #1 on: January 02, 2024, 06:23:09 PM »
That looks quite cool. Would you mind sharing your code? I'm interested in it.
« Last Edit: January 02, 2024, 09:24:27 PM by Fumeaux »

Offline haversin

  • High Voltage Experimenter
  • **
  • Posts: 61
  • Karma: +5/-0
    • View Profile
Re: Phone sensor fusion demo
« Reply #2 on: January 03, 2024, 05:13:54 PM »
Here is the Python code. you need the Phyphox app on the phone.  I have an android not sure about iphone. I wrote my own quaternion module let me know if you need that.

Code: [Select]
import sys
import pygame
from pygame.locals import *
from OpenGL.GL import *
from OpenGL.GLU import *
from math import *
import numpy as np
import requests
import quaternions as qu

x,y,z = 1.25,2.5,.25
vertices = (
    (x, -y, -z),
    (x, y, -z),
    (-x, y, -z),
    (-x, -y, -z),
    (x, -y, z),
    (x, y, z),
    (-x,-y, z),
    (-x, y, z)
    )

faces = (
    (0,1,2,3),
    (3,2,7,6),
    (6,7,5,4),
    (4,5,1,0),
    (1,5,7,2),
    (4,0,3,6)
    )

colors = (
    (0.,1.,0.),
    (1.,0.,0.),
    (0.,0.,1.),
    (1.,1.,0.),
    (1.,0.,1.),
    (0.,1.,1.)
    )

def quads():
    cindx = 0
    glBegin(GL_QUADS)
    for face in faces:
        glColor3fv(colors[cindx])
        for vertex in face:
            glVertex3fv(vertices[vertex])
        cindx += 1
    glEnd()       
           
# phyphox comm settings
PP_ADDRESS = "http://192.168.1.3:8080"
PP_CHANNELS = ["accX", "accY", "accZ","gyr_time","gyrX", "gyrY", "gyrZ",
            "magX", "magY", "magZ"]
#PP_CHANNELS = ["acc_time","accX", "accY", "accZ"]# accelerometer data names
#PP_CHANNELS = ["gyr_time","gyrX", "gyrY", "gyrZ"] # gyro data names
#PP_CHANNELS = ["magX", "magY", "magZ"] # magnetometer data names
start = PP_ADDRESS +"/control?cmd=start"
stop = PP_ADDRESS +"/control?cmd=stop"
clear = PP_ADDRESS +"/control?cmd=clear"
url = PP_ADDRESS + "/get?" + ("&".join(PP_CHANNELS))
ax,ay = 0.,0.


def main():
    m, e, u, qf = np.zeros((3,3)),np.zeros(3),np.zeros(3),np.zeros(4)
    b, n, q, dqg = np.zeros(3),np.zeros(3),np.zeros(4),np.zeros(4)
    wu = np.zeros(3)
    wtl = 0.
    crd, twopi = 180./pi, 2*pi
    fac = .9  #  filter parameter
    pygame.init()
    display = (1333,1000)
#    aspr = float(display[0])/display[1]
    aspr = 1.5
    pygame.display.set_mode(display, DOUBLEBUF|OPENGL)
    glEnable(GL_CULL_FACE)
    glFrontFace(GL_CW) # face vertex winding order is CW
#    gluPerspective(45, (display[0]/display[1]), .1, 50.)
    s = 7.
    glOrtho(-s*aspr,s*aspr,-s,s,0.1,50.)
    glTranslatef(0,0,-5)
    glRotated(-90.,1,0,0)
    glRotated(-90.,0,0,1)

   
    data = requests.get(start).json() # start comm with phyphox
   
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                data = requests.get(stop).json() # stop comm with phyphox
                quit()

        data = requests.get(url=url).json()
        ax = data["buffer"][PP_CHANNELS[0]]["buffer"][0]
        ay = data["buffer"][PP_CHANNELS[1]]["buffer"][0]
        az = data["buffer"][PP_CHANNELS[2]]["buffer"][0]
        wt = data["buffer"][PP_CHANNELS[3]]["buffer"][0]
        wx = data["buffer"][PP_CHANNELS[4]]["buffer"][0]
        wy = data["buffer"][PP_CHANNELS[5]]["buffer"][0]
        wz = data["buffer"][PP_CHANNELS[6]]["buffer"][0]
        bx = data["buffer"][PP_CHANNELS[7]]["buffer"][0]
        by = data["buffer"][PP_CHANNELS[8]]["buffer"][0]
        bz = data["buffer"][PP_CHANNELS[9]]["buffer"][0]

        if str(ax) != 'None' and str(wt) != 'None' and str(bx) != 'None' :

# use acceleromter and magnetometer data to construct rotation matrix
            u[:] = ax, ay, az
            umag = sqrt(u.dot(u))
            u /= umag
            b[:] = bx, by, bz
            e = np.cross(b,u)
            emag = sqrt(e.dot(e))
            e /= emag
            n = np.cross(u,e)
            m[0] = e
            m[1] = n
            m[2] = u
# convert rotation matrix to quaternion qam
            qam = qu.mat2q(m)
            if wtl == 0.:
              qf, wtl = qam, wt
# compute delta rotation quaternion from gyro data
            dwt = wt - wtl
            if dwt > .2:
              dwt = .2
            print(wx, wy, wz, wt, wtl, dwt)
            wtl = wt
            wu[:] = wx, wy, wz
            wmag = sqrt(wu.dot(wu))
            wu /= wmag
            thao2 = wmag*dwt/2.
            sthao2 = sin(thao2)
            dqg[:] = cos(thao2), wu[0]*sthao2, wu[1]*sthao2, wu[2]*sthao2
            qg = qu.q_mult(dqg,qf)
            qf = qu.Slerp(qam,qg,fac)

        glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
# draw object with it's own screen positon           
        glPushMatrix()
        glTranslatef(0,-4.25,0)
        tha = 2*acos(qam[0])
        glRotated(tha*crd,qam[1],qam[2],qam[3])
        quads()
        glPopMatrix()


# draw object with it's own screen positon           
        glPushMatrix()
        glTranslatef(0,4.25,0)
        tha = 2*acos(qf[0])
        glRotated(tha*crd,qf[1],qf[2],qf[3])
        quads()
        glPopMatrix()

        pygame.display.flip()
        pygame.time.wait(1)   
main()

High Voltage Forum

Re: Phone sensor fusion demo
« Reply #2 on: January 03, 2024, 05:13:54 PM »

 


* Recent Topics and Posts

post Re: Has anyone tried to build a TMT (extra coil) Tesla coil?
[General Chat]
Michelle_
Today at 02:29:30 AM
post Re: Has anyone tried to build a TMT (extra coil) Tesla coil?
[General Chat]
MRMILSTAR
April 16, 2024, 11:56:12 PM
post Re: How to get a GE Yokogawa AB40 Sync Scope to rotate without a powerplant.
[Laboratories, Equipment and Tools]
klugesmith
April 16, 2024, 11:46:57 PM
post Re: How to get a GE Yokogawa AB40 Sync Scope to rotate without a powerplant.
[Laboratories, Equipment and Tools]
Bobakman
April 16, 2024, 10:40:11 PM
post Has anyone tried to build a TMT (extra coil) Tesla coil?
[General Chat]
Michelle_
April 16, 2024, 09:21:39 PM
post Re: Medium Drsstc question
[Dual Resonant Solid State Tesla coils (DRSSTC)]
flyingperson23
April 16, 2024, 08:04:16 PM
post Re: First DRSSTC SKM100
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Benjamin Lockhart
April 16, 2024, 06:48:05 PM
post Re: Game changing tesla coil secondary winding suggestions
[General Chat]
Michelle_
April 16, 2024, 06:18:40 PM
post Re: Small-ish 3D printed SGTC via cheap ZVS flyback build, humbly asking a couple ?s
[Spark Gap Tesla Coils (SGTC)]
Michelle_
April 16, 2024, 06:14:53 PM
post Re: 3D printed mini-slayer: world's weakest tesla coil
[Solid State Tesla Coils (SSTC)]
unrealcrafter2
April 16, 2024, 05:44:44 PM
post Re: Small-ish 3D printed SGTC via cheap ZVS flyback build, humbly asking a couple ?s
[Spark Gap Tesla Coils (SGTC)]
MRMILSTAR
April 16, 2024, 03:12:12 PM
post Re: Drsstc voltage spike question
[Dual Resonant Solid State Tesla coils (DRSSTC)]
unrealcrafter2
April 16, 2024, 02:28:01 PM
post Re: First DRSSTC SKM100
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Saattvik24
April 16, 2024, 01:56:26 PM
post Re: Small-ish 3D printed SGTC via cheap ZVS flyback build, humbly asking a couple ?s
[Spark Gap Tesla Coils (SGTC)]
Michelle_
April 16, 2024, 06:50:47 AM
post Re: IKY150N65EH7, is it good for DRSSTC
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Anders Mikkelsen
April 16, 2024, 04:57:47 AM
post Re: IKY150N65EH7, is it good for DRSSTC
[Dual Resonant Solid State Tesla coils (DRSSTC)]
ethanwu0131
April 16, 2024, 03:40:53 AM
post Re: First DRSSTC SKM100
[Dual Resonant Solid State Tesla coils (DRSSTC)]
flyingperson23
April 16, 2024, 01:31:17 AM
post Re: Game changing tesla coil secondary winding suggestions
[General Chat]
Michelle_
April 15, 2024, 11:19:52 PM
post 3D printed mini-slayer: world's weakest tesla coil
[Solid State Tesla Coils (SSTC)]
Michelle_
April 15, 2024, 11:10:19 PM
post Re: Game changing tesla coil secondary winding suggestions
[General Chat]
alan sailer
April 15, 2024, 11:04:19 PM
post Re: Ignitron trigger drive ideas?
[Capacitor Banks]
Twospoons
April 15, 2024, 11:02:05 PM
post Re: Game changing tesla coil secondary winding suggestions
[General Chat]
Michelle_
April 15, 2024, 10:57:59 PM
post Re: Game changing tesla coil secondary winding suggestions
[General Chat]
Michelle_
April 15, 2024, 10:55:46 PM
post Re: Return of Electronics Flea Market in "Silicon Valley"
[Sell / Buy / Trade]
klugesmith
April 15, 2024, 10:37:32 PM
post Re: First DRSSTC SKM100
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Saattvik24
April 15, 2024, 10:05:00 PM
post Re: How to get a GE Yokogawa AB40 Sync Scope to rotate without a powerplant.
[Laboratories, Equipment and Tools]
MRMILSTAR
April 15, 2024, 09:28:50 PM
post Ignitron trigger drive ideas?
[Capacitor Banks]
klugesmith
April 15, 2024, 09:06:42 PM
post Re: First DRSSTC SKM100
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Mads Barnkob
April 15, 2024, 08:46:32 PM
post Re: Game changing tesla coil secondary winding suggestions
[General Chat]
Benbmw
April 15, 2024, 08:38:39 PM
post Re: Game changing tesla coil secondary winding suggestions
[General Chat]
sky-guided
April 15, 2024, 08:23:40 PM
post How to get a GE Yokogawa AB40 Sync Scope to rotate without a powerplant.
[Laboratories, Equipment and Tools]
Bobakman
April 15, 2024, 06:43:23 PM
post Re: First DRSSTC SKM100
[Dual Resonant Solid State Tesla coils (DRSSTC)]
flyingperson23
April 15, 2024, 06:29:10 AM
post Re: Small-ish 3D printed SGTC via cheap ZVS flyback build, humbly asking a couple ?s
[Spark Gap Tesla Coils (SGTC)]
Michelle_
April 15, 2024, 05:21:53 AM
post Re: Small-ish 3D printed SGTC via cheap ZVS flyback build, humbly asking a couple ?s
[Spark Gap Tesla Coils (SGTC)]
Michelle_
April 15, 2024, 05:15:33 AM
post Re: First DRSSTC SKM100
[Dual Resonant Solid State Tesla coils (DRSSTC)]
davekni
April 15, 2024, 04:07:54 AM
post Re: Small-ish 3D printed SGTC via cheap ZVS flyback build, humbly asking a couple ?s
[Spark Gap Tesla Coils (SGTC)]
davekni
April 15, 2024, 03:49:03 AM
post Re: Small-ish 3D printed SGTC via cheap ZVS flyback build, humbly asking a couple ?s
[Spark Gap Tesla Coils (SGTC)]
alan sailer
April 14, 2024, 09:46:30 PM
post Small-ish 3D printed SGTC via cheap ZVS flyback build, humbly asking a couple ?s
[Spark Gap Tesla Coils (SGTC)]
Michelle_
April 14, 2024, 07:31:00 PM
post Re: First DRSSTC SKM100
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Saattvik24
April 14, 2024, 02:26:19 PM
post Re: mg75q2ys40 IGBT
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Mads Barnkob
April 14, 2024, 07:20:54 AM
post Re: IKY150N65EH7, is it good for DRSSTC
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Mads Barnkob
April 14, 2024, 07:18:20 AM
post Re: Game changing tesla coil secondary winding suggestions
[General Chat]
Michelle_
April 13, 2024, 06:46:40 AM
post Re: Game changing tesla coil secondary winding suggestions
[General Chat]
Michelle_
April 13, 2024, 04:18:42 AM
post Re: Upper and Lower Explosive Limits on Confined Flammable Vapors at -79 C.
[General Chat]
alan sailer
April 13, 2024, 03:24:20 AM
post Re: Game changing tesla coil secondary winding suggestions
[General Chat]
alan sailer
April 13, 2024, 03:20:46 AM
post Game changing tesla coil secondary winding suggestions
[General Chat]
Michelle_
April 13, 2024, 03:13:22 AM
post Re: Capacitor Blowout
[Sell / Buy / Trade]
lbattraw
April 12, 2024, 09:14:58 PM
post mg75q2ys40 IGBT
[Dual Resonant Solid State Tesla coils (DRSSTC)]
thedark
April 12, 2024, 08:40:18 PM
post Re: UD 2.7 OCD LED stays on, no output during inital test
[Dual Resonant Solid State Tesla coils (DRSSTC)]
davekni
April 12, 2024, 07:20:30 PM
post Re: Mosfet Buffer Stage Questions
[Beginners]
davekni
April 12, 2024, 07:12:43 PM
post IKY150N65EH7, is it good for DRSSTC
[Dual Resonant Solid State Tesla coils (DRSSTC)]
ethanwu0131
April 12, 2024, 04:47:33 PM
post Re: UD 2.7 OCD LED stays on, no output during inital test
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Admiral Aaron Ravensdale
April 12, 2024, 11:43:36 AM
post Mosfet Buffer Stage Questions
[Beginners]
Egg
April 12, 2024, 12:49:02 AM
post Re: UD 2.7 OCD LED stays on, no output during inital test
[Dual Resonant Solid State Tesla coils (DRSSTC)]
davekni
April 12, 2024, 12:41:16 AM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
davekni
April 12, 2024, 12:22:41 AM
post Re: Capacitor Blowout
[Sell / Buy / Trade]
Michelle_
April 11, 2024, 10:45:53 PM
post Re: UD 2.7 OCD LED stays on, no output during inital test
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Admiral Aaron Ravensdale
April 11, 2024, 07:39:30 PM
post Re: UD 2.7 OCD LED stays on, no output during inital test
[Dual Resonant Solid State Tesla coils (DRSSTC)]
flyingperson23
April 11, 2024, 07:24:52 PM
post Re: Tesla coil safety questions, risk analysis quantified
[Beginners]
sky-guided
April 11, 2024, 06:09:30 PM
post UD 2.7 OCD LED stays on, no output during inital test
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Admiral Aaron Ravensdale
April 11, 2024, 12:55:16 PM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
alan sailer
April 11, 2024, 03:40:00 AM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
sky-guided
April 11, 2024, 03:05:07 AM
post Re: Tesla coil safety questions, risk analysis quantified
[Beginners]
Michelle_
April 11, 2024, 02:57:33 AM
post Re: Tesla coil safety questions, risk analysis quantified
[Beginners]
alan sailer
April 11, 2024, 01:44:32 AM
post Re: Tesla coil safety questions, risk analysis quantified
[Beginners]
Michelle_
April 11, 2024, 01:31:40 AM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
OmGigaTron
April 11, 2024, 01:11:00 AM
post Re: Tesla coil safety questions, risk analysis quantified
[Beginners]
alan sailer
April 11, 2024, 12:58:52 AM
post Re: Tesla coil safety questions, risk analysis quantified
[Beginners]
Michelle_
April 11, 2024, 12:31:37 AM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
alan sailer
April 11, 2024, 12:30:21 AM
post Re: Tesla coil safety questions, risk analysis quantified
[Beginners]
alan sailer
April 10, 2024, 11:41:46 PM
post Re: Tesla coil safety questions, risk analysis quantified
[Beginners]
Mads Barnkob
April 10, 2024, 11:33:32 PM
post Re: Tesla coil safety questions, risk analysis quantified
[Beginners]
Michelle_
April 10, 2024, 10:41:33 PM
post Re: Tesla coil safety questions, risk analysis quantified
[Beginners]
MRMILSTAR
April 10, 2024, 10:31:31 PM
post Tesla coil safety questions, risk analysis quantified
[Beginners]
Michelle_
April 10, 2024, 09:56:35 PM
post Re: Drsstc voltage spike question
[Dual Resonant Solid State Tesla coils (DRSSTC)]
unrealcrafter2
April 10, 2024, 08:59:26 PM
post Re: Drsstc voltage spike question
[Dual Resonant Solid State Tesla coils (DRSSTC)]
markus
April 10, 2024, 06:35:30 PM
post Re: Drsstc voltage spike question
[Dual Resonant Solid State Tesla coils (DRSSTC)]
flyingperson23
April 10, 2024, 05:35:14 PM
post Medium Drsstc question
[Dual Resonant Solid State Tesla coils (DRSSTC)]
unrealcrafter2
April 10, 2024, 03:07:02 PM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Michelle_
April 10, 2024, 03:42:12 AM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Michelle_
April 10, 2024, 03:41:04 AM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
sky-guided
April 10, 2024, 02:50:23 AM
post Re: DRSSTC V1 using BSM1500
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Unrealeous
April 10, 2024, 01:32:17 AM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
OmGigaTron
April 10, 2024, 01:26:29 AM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
OmGigaTron
April 10, 2024, 01:18:35 AM
post Re: Big Coil Big Sparks
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Mads Barnkob
April 09, 2024, 07:34:19 PM
post Re: DRSSTC V1 using BSM1500
[Dual Resonant Solid State Tesla coils (DRSSTC)]
flyingperson23
April 09, 2024, 06:14:27 PM
post Re: CM400 Induction Heater
[Electronic Circuits]
markus
April 09, 2024, 06:08:53 PM
post Re: DRSSTC V1 using BSM1500
[Dual Resonant Solid State Tesla coils (DRSSTC)]
markus
April 09, 2024, 05:15:19 PM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Michelle_
April 09, 2024, 05:11:04 PM
post Re: Big Coil Big Sparks
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Benjamin Lockhart
April 09, 2024, 06:32:16 AM
post DRSSTC V1 using BSM150
[Dual Resonant Solid State Tesla coils (DRSSTC)]
Unrealeous
April 09, 2024, 04:04:47 AM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
alan sailer
April 09, 2024, 03:27:11 AM
post Re: Big Coil Big Sparks
[Dual Resonant Solid State Tesla coils (DRSSTC)]
davekni
April 09, 2024, 03:25:47 AM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
OmGigaTron
April 09, 2024, 03:01:40 AM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
sky-guided
April 09, 2024, 02:46:46 AM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
OmGigaTron
April 08, 2024, 09:32:57 PM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
OmGigaTron
April 08, 2024, 09:25:11 PM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
alan sailer
April 08, 2024, 08:45:15 PM
post Re: Plasma Torid - Class E Self Resonant Dual/Stereo - Plasma Torid Build
[Dual Resonant Solid State Tesla coils (DRSSTC)]
OmGigaTron
April 08, 2024, 08:24:13 PM
post Big Coil Big Sparks
[Dual Resonant Solid State Tesla coils (DRSSTC)]
alan sailer
April 08, 2024, 04:02:48 PM

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 
SimplePortal 2.3.6 © 2008-2014, SimplePortal