Skip to content

Sleep Pin (on/off control) in RockBLOCK 9603 v3.F #15

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
alexburgis opened this issue Apr 20, 2023 · 1 comment
Closed

Sleep Pin (on/off control) in RockBLOCK 9603 v3.F #15

alexburgis opened this issue Apr 20, 2023 · 1 comment

Comments

@alexburgis
Copy link

Due to supply-chain shortage, some components in RockBLOCK 9603 3.F have been replaced with alternatives. This does not adversely affect the normal operation of the device.

Because of these component changes, 3.F now includes a transistor circuit on the On/Off control pin to ensure correct power up at all supply voltages. The On/Off control pin should not be clamped below the RockBLOCK supply voltage and should be disconnected/left floating to turn on.

Potential issue:
This change has introduced an issue when interfacing directly to a 3V3 microcontroller pin while supplying the RB with 5V. The new On/Off circuitry now provides a high impedance (1Meg resistor) to the super cap voltage, equal to the supplied voltage. This may exceed the maximum IO voltage of the micro.

If the RB was supplied by 5V, the connecting device should also be 5V tolerant. If not, it is recommended to use an interfacing circuit, eg MOSFET, transistor, relay, etc. to connect to a microcontroller.

More info:

https://docs.rockblock.rock7.com/docs/power-supply#onoff-control

@PaulZC
Copy link
Collaborator

PaulZC commented Apr 20, 2023

Hi Alex (@alexburgis ),

Good to meet you. Thanks for the update. We were aware of the issue and have been working with @adamgarbo to resolve it on his equipment.

In this library, the setSleepPin function is weak. Users can overwrite it if they want to or need to. As you say, a solution for the RockBLOCK 3.F and 3.3V microcontrollers is to insert an open-drain N-MOSFET or open-collector NPN transistor between the IO pin and the RockBLOCK On/Off pin. You can then invert the IO pin output inside setSleepPin by including the following code:

void IridiumSBD::setSleepPin(uint8_t enable)
{
   if (enable == HIGH)
  {
      digitalWrite(this->sleepPin, LOW);  // LOW = awake. Inverted by N-MOSFET
      diagprint(F("AWAKE\r\n"));
   }
   else
   {
      digitalWrite(this->sleepPin, HIGH); // HIGH = asleep. Inverted by N-MOSFET
      diagprint(F("ASLEEP\r\n"));
   }
}

I'm going to close this issue, but pin it to make it easier for users to find.

Very best wishes,
Paul

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants