Necessity of External Watchdog Timer
up vote
9
down vote
favorite
what is the need for External watchdog timer for a Microcontroller?.
Most of the micro controllers designed with internal watchdog timer however in some of the circuits they are using external watchdog timer (Such as PIC16F1824)
microcontroller embedded reset watchdog
add a comment |
up vote
9
down vote
favorite
what is the need for External watchdog timer for a Microcontroller?.
Most of the micro controllers designed with internal watchdog timer however in some of the circuits they are using external watchdog timer (Such as PIC16F1824)
microcontroller embedded reset watchdog
add a comment |
up vote
9
down vote
favorite
up vote
9
down vote
favorite
what is the need for External watchdog timer for a Microcontroller?.
Most of the micro controllers designed with internal watchdog timer however in some of the circuits they are using external watchdog timer (Such as PIC16F1824)
microcontroller embedded reset watchdog
what is the need for External watchdog timer for a Microcontroller?.
Most of the micro controllers designed with internal watchdog timer however in some of the circuits they are using external watchdog timer (Such as PIC16F1824)
microcontroller embedded reset watchdog
microcontroller embedded reset watchdog
asked yesterday
Photon001
577313
577313
add a comment |
add a comment |
5 Answers
5
active
oldest
votes
up vote
22
down vote
A watchdog timer can guard against hardware bugs in buggy piece of ... cutting edge microcontrollers. One that we recently used, from a famous brand, had I/O pins that occasionally missed their interrupts, sometimes did not start up correctly, and where the integrated watchdog sometimes failed to reset the system in a known-good state.
This did not show up until we started with long time reliability testing, and it was easier to add an external watchdog than to change the microcontroller.
If you have more than one IC on the PCB you may also need an external reset-IC or voltage monitor to make everything boot up reliably. Many of these can also serve as a watchdog.
2
"integrated watchdog sometimes failed to reset the system in a known-good state" - this is functionally equivalent to "there is no internal watchdog".
– Dmitry Grigoryev
3 hours ago
add a comment |
up vote
18
down vote
It is hard to argue, that the internal clock of the internal watchdog is actually independent of all the other clocks and always running like it should.
So for certification it is usually much easier to place an external watchdog on the board and say: look there is our watchdog, it must be triggered by the MCU at that interval, which is shorter than our time to failure, so our device is safe as we defined it.
2
"and always running like it should" - Good point. It may be harder to prove that your software correctly initializes the internal watchdog under all circumstances than just employing a watchdog chip and refer to its datasheet.
– JimmyB
yesterday
2
@JimmyB Or to prove that your code doesn't contain a bug that accidentally disables the internal watchdog.
– TripeHound
22 hours ago
1
@TripeHound Or to prove that your code doesn't run wild continuously resetting the external watchdog as fast as it can. Problem solved. ;-)
– JimmyB
22 hours ago
Or that some genius doesn't put the watchdog service routine inside a timer ISR, so the main code can crash but the interrupt keeps firing & servicing the watchdog perfectly...
– John U
21 hours ago
@JohnU, that, however, would not seem like something an external IC would help with.
– ilkkachu
18 hours ago
|
show 1 more comment
up vote
4
down vote
The watchdogs built in to mictrocontrollers have particular properties that mean they themselves can fail in ways that a different external watchdog might not.
For example, a common design is to use a watchdog timer running from a low power RC oscillator. That oscillator can fail. An external watchdog based on capacitor discharge rather than an oscillator could still reset the micro in many cases.
Another reason is that the external watchdog can be more robust. A microcontroller might only operate reliably over a certain voltage range, and being a complex device may be subject to latching up in a way that makes its own internal watchdog ineffective. An external watchdog may have a wider acceptable supply range and be less prone to problems when subjected to electrical noise.
External watchdogs often offer a much wider range of time-out values too. A microcontroller I use often, the XMEGA, has a maximum time-out of around 7 seconds. For one product I added an additional external watchdog with time-out of 2 hours. That allowed me to wake the microcontroller once an hour rather than once every few seconds, reducing power consumption in a battery powered device.
External watchdogs sometimes multiple functions, such as a timer and a voltage monitor/reset control. Again, these can be lower power than a micro's built in system too.
One other interesting advantage of an external watchdog is that it can be used to reset devices other than the microcontroller. For example it might control the enable pin of a voltage regulator, de-powering an entire circuit to reset multiple devices at once. Using some simple logic the watchdog reset signal from multiple sources can be combined, allowing the watchdog to require several devices to be continually resetting it.
add a comment |
up vote
0
down vote
A watchdog is a timer and activates its output when the IC lost an input pulse for a period.
It is a building block and can use for any application.
So, they can use in any application, for example, change data routing in fail-safe mode. When the MCU clock fails, we can't disable some critical outputs.
external watchdog not related to the complex clock domain of MCU, some of them has their analog RC charge timing or internal clock.
Digital circuits in radiation may trigger the outputs when charge hits its flip-flops. But some analog circuit is safer because they integrate charge in a capacitor and it is safe when we integrating it.
add a comment |
up vote
0
down vote
A watchdog is really no different in this regard from any other built-in peripheral you find in an MCU. MCUs come with timers, RTCs, ADCs, EEPROM and reset controllers, yet all these functions also exist as separate ICs. If available built-in blocks don't meet your requirements, you have to use external ones. Or you can try to find an MCU with all the right blocks, which may not exist or be too expensive or hard to port your code to.
add a comment |
5 Answers
5
active
oldest
votes
5 Answers
5
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
22
down vote
A watchdog timer can guard against hardware bugs in buggy piece of ... cutting edge microcontrollers. One that we recently used, from a famous brand, had I/O pins that occasionally missed their interrupts, sometimes did not start up correctly, and where the integrated watchdog sometimes failed to reset the system in a known-good state.
This did not show up until we started with long time reliability testing, and it was easier to add an external watchdog than to change the microcontroller.
If you have more than one IC on the PCB you may also need an external reset-IC or voltage monitor to make everything boot up reliably. Many of these can also serve as a watchdog.
2
"integrated watchdog sometimes failed to reset the system in a known-good state" - this is functionally equivalent to "there is no internal watchdog".
– Dmitry Grigoryev
3 hours ago
add a comment |
up vote
22
down vote
A watchdog timer can guard against hardware bugs in buggy piece of ... cutting edge microcontrollers. One that we recently used, from a famous brand, had I/O pins that occasionally missed their interrupts, sometimes did not start up correctly, and where the integrated watchdog sometimes failed to reset the system in a known-good state.
This did not show up until we started with long time reliability testing, and it was easier to add an external watchdog than to change the microcontroller.
If you have more than one IC on the PCB you may also need an external reset-IC or voltage monitor to make everything boot up reliably. Many of these can also serve as a watchdog.
2
"integrated watchdog sometimes failed to reset the system in a known-good state" - this is functionally equivalent to "there is no internal watchdog".
– Dmitry Grigoryev
3 hours ago
add a comment |
up vote
22
down vote
up vote
22
down vote
A watchdog timer can guard against hardware bugs in buggy piece of ... cutting edge microcontrollers. One that we recently used, from a famous brand, had I/O pins that occasionally missed their interrupts, sometimes did not start up correctly, and where the integrated watchdog sometimes failed to reset the system in a known-good state.
This did not show up until we started with long time reliability testing, and it was easier to add an external watchdog than to change the microcontroller.
If you have more than one IC on the PCB you may also need an external reset-IC or voltage monitor to make everything boot up reliably. Many of these can also serve as a watchdog.
A watchdog timer can guard against hardware bugs in buggy piece of ... cutting edge microcontrollers. One that we recently used, from a famous brand, had I/O pins that occasionally missed their interrupts, sometimes did not start up correctly, and where the integrated watchdog sometimes failed to reset the system in a known-good state.
This did not show up until we started with long time reliability testing, and it was easier to add an external watchdog than to change the microcontroller.
If you have more than one IC on the PCB you may also need an external reset-IC or voltage monitor to make everything boot up reliably. Many of these can also serve as a watchdog.
answered yesterday
pipe
9,64742152
9,64742152
2
"integrated watchdog sometimes failed to reset the system in a known-good state" - this is functionally equivalent to "there is no internal watchdog".
– Dmitry Grigoryev
3 hours ago
add a comment |
2
"integrated watchdog sometimes failed to reset the system in a known-good state" - this is functionally equivalent to "there is no internal watchdog".
– Dmitry Grigoryev
3 hours ago
2
2
"integrated watchdog sometimes failed to reset the system in a known-good state" - this is functionally equivalent to "there is no internal watchdog".
– Dmitry Grigoryev
3 hours ago
"integrated watchdog sometimes failed to reset the system in a known-good state" - this is functionally equivalent to "there is no internal watchdog".
– Dmitry Grigoryev
3 hours ago
add a comment |
up vote
18
down vote
It is hard to argue, that the internal clock of the internal watchdog is actually independent of all the other clocks and always running like it should.
So for certification it is usually much easier to place an external watchdog on the board and say: look there is our watchdog, it must be triggered by the MCU at that interval, which is shorter than our time to failure, so our device is safe as we defined it.
2
"and always running like it should" - Good point. It may be harder to prove that your software correctly initializes the internal watchdog under all circumstances than just employing a watchdog chip and refer to its datasheet.
– JimmyB
yesterday
2
@JimmyB Or to prove that your code doesn't contain a bug that accidentally disables the internal watchdog.
– TripeHound
22 hours ago
1
@TripeHound Or to prove that your code doesn't run wild continuously resetting the external watchdog as fast as it can. Problem solved. ;-)
– JimmyB
22 hours ago
Or that some genius doesn't put the watchdog service routine inside a timer ISR, so the main code can crash but the interrupt keeps firing & servicing the watchdog perfectly...
– John U
21 hours ago
@JohnU, that, however, would not seem like something an external IC would help with.
– ilkkachu
18 hours ago
|
show 1 more comment
up vote
18
down vote
It is hard to argue, that the internal clock of the internal watchdog is actually independent of all the other clocks and always running like it should.
So for certification it is usually much easier to place an external watchdog on the board and say: look there is our watchdog, it must be triggered by the MCU at that interval, which is shorter than our time to failure, so our device is safe as we defined it.
2
"and always running like it should" - Good point. It may be harder to prove that your software correctly initializes the internal watchdog under all circumstances than just employing a watchdog chip and refer to its datasheet.
– JimmyB
yesterday
2
@JimmyB Or to prove that your code doesn't contain a bug that accidentally disables the internal watchdog.
– TripeHound
22 hours ago
1
@TripeHound Or to prove that your code doesn't run wild continuously resetting the external watchdog as fast as it can. Problem solved. ;-)
– JimmyB
22 hours ago
Or that some genius doesn't put the watchdog service routine inside a timer ISR, so the main code can crash but the interrupt keeps firing & servicing the watchdog perfectly...
– John U
21 hours ago
@JohnU, that, however, would not seem like something an external IC would help with.
– ilkkachu
18 hours ago
|
show 1 more comment
up vote
18
down vote
up vote
18
down vote
It is hard to argue, that the internal clock of the internal watchdog is actually independent of all the other clocks and always running like it should.
So for certification it is usually much easier to place an external watchdog on the board and say: look there is our watchdog, it must be triggered by the MCU at that interval, which is shorter than our time to failure, so our device is safe as we defined it.
It is hard to argue, that the internal clock of the internal watchdog is actually independent of all the other clocks and always running like it should.
So for certification it is usually much easier to place an external watchdog on the board and say: look there is our watchdog, it must be triggered by the MCU at that interval, which is shorter than our time to failure, so our device is safe as we defined it.
answered yesterday
Arsenal
12.2k11242
12.2k11242
2
"and always running like it should" - Good point. It may be harder to prove that your software correctly initializes the internal watchdog under all circumstances than just employing a watchdog chip and refer to its datasheet.
– JimmyB
yesterday
2
@JimmyB Or to prove that your code doesn't contain a bug that accidentally disables the internal watchdog.
– TripeHound
22 hours ago
1
@TripeHound Or to prove that your code doesn't run wild continuously resetting the external watchdog as fast as it can. Problem solved. ;-)
– JimmyB
22 hours ago
Or that some genius doesn't put the watchdog service routine inside a timer ISR, so the main code can crash but the interrupt keeps firing & servicing the watchdog perfectly...
– John U
21 hours ago
@JohnU, that, however, would not seem like something an external IC would help with.
– ilkkachu
18 hours ago
|
show 1 more comment
2
"and always running like it should" - Good point. It may be harder to prove that your software correctly initializes the internal watchdog under all circumstances than just employing a watchdog chip and refer to its datasheet.
– JimmyB
yesterday
2
@JimmyB Or to prove that your code doesn't contain a bug that accidentally disables the internal watchdog.
– TripeHound
22 hours ago
1
@TripeHound Or to prove that your code doesn't run wild continuously resetting the external watchdog as fast as it can. Problem solved. ;-)
– JimmyB
22 hours ago
Or that some genius doesn't put the watchdog service routine inside a timer ISR, so the main code can crash but the interrupt keeps firing & servicing the watchdog perfectly...
– John U
21 hours ago
@JohnU, that, however, would not seem like something an external IC would help with.
– ilkkachu
18 hours ago
2
2
"and always running like it should" - Good point. It may be harder to prove that your software correctly initializes the internal watchdog under all circumstances than just employing a watchdog chip and refer to its datasheet.
– JimmyB
yesterday
"and always running like it should" - Good point. It may be harder to prove that your software correctly initializes the internal watchdog under all circumstances than just employing a watchdog chip and refer to its datasheet.
– JimmyB
yesterday
2
2
@JimmyB Or to prove that your code doesn't contain a bug that accidentally disables the internal watchdog.
– TripeHound
22 hours ago
@JimmyB Or to prove that your code doesn't contain a bug that accidentally disables the internal watchdog.
– TripeHound
22 hours ago
1
1
@TripeHound Or to prove that your code doesn't run wild continuously resetting the external watchdog as fast as it can. Problem solved. ;-)
– JimmyB
22 hours ago
@TripeHound Or to prove that your code doesn't run wild continuously resetting the external watchdog as fast as it can. Problem solved. ;-)
– JimmyB
22 hours ago
Or that some genius doesn't put the watchdog service routine inside a timer ISR, so the main code can crash but the interrupt keeps firing & servicing the watchdog perfectly...
– John U
21 hours ago
Or that some genius doesn't put the watchdog service routine inside a timer ISR, so the main code can crash but the interrupt keeps firing & servicing the watchdog perfectly...
– John U
21 hours ago
@JohnU, that, however, would not seem like something an external IC would help with.
– ilkkachu
18 hours ago
@JohnU, that, however, would not seem like something an external IC would help with.
– ilkkachu
18 hours ago
|
show 1 more comment
up vote
4
down vote
The watchdogs built in to mictrocontrollers have particular properties that mean they themselves can fail in ways that a different external watchdog might not.
For example, a common design is to use a watchdog timer running from a low power RC oscillator. That oscillator can fail. An external watchdog based on capacitor discharge rather than an oscillator could still reset the micro in many cases.
Another reason is that the external watchdog can be more robust. A microcontroller might only operate reliably over a certain voltage range, and being a complex device may be subject to latching up in a way that makes its own internal watchdog ineffective. An external watchdog may have a wider acceptable supply range and be less prone to problems when subjected to electrical noise.
External watchdogs often offer a much wider range of time-out values too. A microcontroller I use often, the XMEGA, has a maximum time-out of around 7 seconds. For one product I added an additional external watchdog with time-out of 2 hours. That allowed me to wake the microcontroller once an hour rather than once every few seconds, reducing power consumption in a battery powered device.
External watchdogs sometimes multiple functions, such as a timer and a voltage monitor/reset control. Again, these can be lower power than a micro's built in system too.
One other interesting advantage of an external watchdog is that it can be used to reset devices other than the microcontroller. For example it might control the enable pin of a voltage regulator, de-powering an entire circuit to reset multiple devices at once. Using some simple logic the watchdog reset signal from multiple sources can be combined, allowing the watchdog to require several devices to be continually resetting it.
add a comment |
up vote
4
down vote
The watchdogs built in to mictrocontrollers have particular properties that mean they themselves can fail in ways that a different external watchdog might not.
For example, a common design is to use a watchdog timer running from a low power RC oscillator. That oscillator can fail. An external watchdog based on capacitor discharge rather than an oscillator could still reset the micro in many cases.
Another reason is that the external watchdog can be more robust. A microcontroller might only operate reliably over a certain voltage range, and being a complex device may be subject to latching up in a way that makes its own internal watchdog ineffective. An external watchdog may have a wider acceptable supply range and be less prone to problems when subjected to electrical noise.
External watchdogs often offer a much wider range of time-out values too. A microcontroller I use often, the XMEGA, has a maximum time-out of around 7 seconds. For one product I added an additional external watchdog with time-out of 2 hours. That allowed me to wake the microcontroller once an hour rather than once every few seconds, reducing power consumption in a battery powered device.
External watchdogs sometimes multiple functions, such as a timer and a voltage monitor/reset control. Again, these can be lower power than a micro's built in system too.
One other interesting advantage of an external watchdog is that it can be used to reset devices other than the microcontroller. For example it might control the enable pin of a voltage regulator, de-powering an entire circuit to reset multiple devices at once. Using some simple logic the watchdog reset signal from multiple sources can be combined, allowing the watchdog to require several devices to be continually resetting it.
add a comment |
up vote
4
down vote
up vote
4
down vote
The watchdogs built in to mictrocontrollers have particular properties that mean they themselves can fail in ways that a different external watchdog might not.
For example, a common design is to use a watchdog timer running from a low power RC oscillator. That oscillator can fail. An external watchdog based on capacitor discharge rather than an oscillator could still reset the micro in many cases.
Another reason is that the external watchdog can be more robust. A microcontroller might only operate reliably over a certain voltage range, and being a complex device may be subject to latching up in a way that makes its own internal watchdog ineffective. An external watchdog may have a wider acceptable supply range and be less prone to problems when subjected to electrical noise.
External watchdogs often offer a much wider range of time-out values too. A microcontroller I use often, the XMEGA, has a maximum time-out of around 7 seconds. For one product I added an additional external watchdog with time-out of 2 hours. That allowed me to wake the microcontroller once an hour rather than once every few seconds, reducing power consumption in a battery powered device.
External watchdogs sometimes multiple functions, such as a timer and a voltage monitor/reset control. Again, these can be lower power than a micro's built in system too.
One other interesting advantage of an external watchdog is that it can be used to reset devices other than the microcontroller. For example it might control the enable pin of a voltage regulator, de-powering an entire circuit to reset multiple devices at once. Using some simple logic the watchdog reset signal from multiple sources can be combined, allowing the watchdog to require several devices to be continually resetting it.
The watchdogs built in to mictrocontrollers have particular properties that mean they themselves can fail in ways that a different external watchdog might not.
For example, a common design is to use a watchdog timer running from a low power RC oscillator. That oscillator can fail. An external watchdog based on capacitor discharge rather than an oscillator could still reset the micro in many cases.
Another reason is that the external watchdog can be more robust. A microcontroller might only operate reliably over a certain voltage range, and being a complex device may be subject to latching up in a way that makes its own internal watchdog ineffective. An external watchdog may have a wider acceptable supply range and be less prone to problems when subjected to electrical noise.
External watchdogs often offer a much wider range of time-out values too. A microcontroller I use often, the XMEGA, has a maximum time-out of around 7 seconds. For one product I added an additional external watchdog with time-out of 2 hours. That allowed me to wake the microcontroller once an hour rather than once every few seconds, reducing power consumption in a battery powered device.
External watchdogs sometimes multiple functions, such as a timer and a voltage monitor/reset control. Again, these can be lower power than a micro's built in system too.
One other interesting advantage of an external watchdog is that it can be used to reset devices other than the microcontroller. For example it might control the enable pin of a voltage regulator, de-powering an entire circuit to reset multiple devices at once. Using some simple logic the watchdog reset signal from multiple sources can be combined, allowing the watchdog to require several devices to be continually resetting it.
answered 23 hours ago
user
1,134614
1,134614
add a comment |
add a comment |
up vote
0
down vote
A watchdog is a timer and activates its output when the IC lost an input pulse for a period.
It is a building block and can use for any application.
So, they can use in any application, for example, change data routing in fail-safe mode. When the MCU clock fails, we can't disable some critical outputs.
external watchdog not related to the complex clock domain of MCU, some of them has their analog RC charge timing or internal clock.
Digital circuits in radiation may trigger the outputs when charge hits its flip-flops. But some analog circuit is safer because they integrate charge in a capacitor and it is safe when we integrating it.
add a comment |
up vote
0
down vote
A watchdog is a timer and activates its output when the IC lost an input pulse for a period.
It is a building block and can use for any application.
So, they can use in any application, for example, change data routing in fail-safe mode. When the MCU clock fails, we can't disable some critical outputs.
external watchdog not related to the complex clock domain of MCU, some of them has their analog RC charge timing or internal clock.
Digital circuits in radiation may trigger the outputs when charge hits its flip-flops. But some analog circuit is safer because they integrate charge in a capacitor and it is safe when we integrating it.
add a comment |
up vote
0
down vote
up vote
0
down vote
A watchdog is a timer and activates its output when the IC lost an input pulse for a period.
It is a building block and can use for any application.
So, they can use in any application, for example, change data routing in fail-safe mode. When the MCU clock fails, we can't disable some critical outputs.
external watchdog not related to the complex clock domain of MCU, some of them has their analog RC charge timing or internal clock.
Digital circuits in radiation may trigger the outputs when charge hits its flip-flops. But some analog circuit is safer because they integrate charge in a capacitor and it is safe when we integrating it.
A watchdog is a timer and activates its output when the IC lost an input pulse for a period.
It is a building block and can use for any application.
So, they can use in any application, for example, change data routing in fail-safe mode. When the MCU clock fails, we can't disable some critical outputs.
external watchdog not related to the complex clock domain of MCU, some of them has their analog RC charge timing or internal clock.
Digital circuits in radiation may trigger the outputs when charge hits its flip-flops. But some analog circuit is safer because they integrate charge in a capacitor and it is safe when we integrating it.
answered 23 hours ago
M KS
667
667
add a comment |
add a comment |
up vote
0
down vote
A watchdog is really no different in this regard from any other built-in peripheral you find in an MCU. MCUs come with timers, RTCs, ADCs, EEPROM and reset controllers, yet all these functions also exist as separate ICs. If available built-in blocks don't meet your requirements, you have to use external ones. Or you can try to find an MCU with all the right blocks, which may not exist or be too expensive or hard to port your code to.
add a comment |
up vote
0
down vote
A watchdog is really no different in this regard from any other built-in peripheral you find in an MCU. MCUs come with timers, RTCs, ADCs, EEPROM and reset controllers, yet all these functions also exist as separate ICs. If available built-in blocks don't meet your requirements, you have to use external ones. Or you can try to find an MCU with all the right blocks, which may not exist or be too expensive or hard to port your code to.
add a comment |
up vote
0
down vote
up vote
0
down vote
A watchdog is really no different in this regard from any other built-in peripheral you find in an MCU. MCUs come with timers, RTCs, ADCs, EEPROM and reset controllers, yet all these functions also exist as separate ICs. If available built-in blocks don't meet your requirements, you have to use external ones. Or you can try to find an MCU with all the right blocks, which may not exist or be too expensive or hard to port your code to.
A watchdog is really no different in this regard from any other built-in peripheral you find in an MCU. MCUs come with timers, RTCs, ADCs, EEPROM and reset controllers, yet all these functions also exist as separate ICs. If available built-in blocks don't meet your requirements, you have to use external ones. Or you can try to find an MCU with all the right blocks, which may not exist or be too expensive or hard to port your code to.
answered 3 hours ago
Dmitry Grigoryev
17.3k22772
17.3k22772
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f406925%2fnecessity-of-external-watchdog-timer%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown