GET https://kbin.spritesserver.nl/u/@jjagaimo@lemmy.ca/newest/2023-08-25::2023-08-25

Security

Token

There is no security token.

Firewall

main Name
Security enabled
Stateless

Configuration

Key Value
provider security.user.provider.concrete.app_user_provider
context main
entry_point App\Security\KbinAuthenticator
user_checker App\Security\UserChecker
access_denied_handler (none)
access_denied_url (none)
authenticators
[
  "two_factor"
  "remember_me"
  "App\Security\KbinAuthenticator"
  "App\Security\FacebookAuthenticator"
  "App\Security\GoogleAuthenticator"
  "App\Security\GithubAuthenticator"
  "App\Security\KeycloakAuthenticator"
]

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#723
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
  -logger: Monolog\Logger {#783 …}
  -httpPort: 80
  -httpsPort: 443
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\ContextListener {#706
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage {#1017 …}
  -sessionKey: "_security_main"
  -logger: Monolog\Logger {#783 …}
  -userProviders: Symfony\Component\DependencyInjection\Argument\RewindableGenerator {#705 …}
  -dispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
  -registered: false
  -trustResolver: Scheb\TwoFactorBundle\Security\Authentication\AuthenticationTrustResolver {#780 …}
  -sessionTrackerEnabler: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage::enableUsageTracking(): void {#703 …}
}
2.22 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#584
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#595 …}
}
0.00 ms (none)
Scheb\TwoFactorBundle\Security\Http\Firewall\TwoFactorAccessListener {#582
  -twoFactorFirewallConfig: Scheb\TwoFactorBundle\Security\TwoFactor\TwoFactorFirewallConfig {#842 …}
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -twoFactorAccessDecider: Scheb\TwoFactorBundle\Security\Authorization\TwoFactorAccessDecider {#581 …}
}
0.08 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#579
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#937 …}
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\LogoutListener {#786
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -options: [
    "csrf_parameter" => "_csrf_token"
    "csrf_token_id" => "logout"
    "logout_path" => "app_logout"
  ]
  -httpUtils: Symfony\Component\Security\Http\HttpUtils {#841 …}
  -csrfTokenManager: Symfony\Component\Security\Csrf\CsrfTokenManager {#1015 …}
  -eventDispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
}
0.00 ms (none)

Authenticators

No authenticators have been recorded. Check previous profiles on your authentication endpoint.

Access Decision

affirmative Strategy
# Voter class
1
"Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter"
2
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
3
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
4
"Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter"
5
"App\Security\Voter\EntryCommentVoter"
6
"App\Security\Voter\EntryVoter"
7
"App\Security\Voter\MagazineVoter"
8
"App\Security\Voter\MessageThreadVoter"
9
"App\Security\Voter\MessageVoter"
10
"App\Security\Voter\NotificationVoter"
11
"App\Security\Voter\OAuth2UserConsentVoter"
12
"App\Security\Voter\PostCommentVoter"
13
"App\Security\Voter\PostVoter"
14
"App\Security\Voter\UserVoter"

Access decision log

# Result Attributes Object
1 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
2 DENIED moderate
Proxies\__CG__\App\Entity\Entry {#1578
  +user: Proxies\__CG__\App\Entity\User {#2471 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#2385 …}
  +slug: "How-to-improve-my-battery-measurement-circuit"
  +title: "How to improve my battery measurement circuit?"
  +url: null
  +body: """
    I am powering a 5V microcontroller (arduino clone, atmega328p) using a 9V block and a buck converter. Now I want to let the microcontroller occasionally measure the battery voltage, so I can get an idea of how full it is.\n
    \n
    My first idea was to use a simple voltage divider:\n
    \n
    ![](https://discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)\n
    \n
    I’ve chosen the resistor values so that:\n
    \n
    - the voltage at the measure output is `< 1.1V`, to be able to use the 1.1V internal reference of the atmega’s ADC\n
    - `R1 || R2 < 10kΩ`, since the atmega datasheet says “The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less”\n
    \n
    This is great and all, but what bothers me is that this circuit will constantly draw ~100µA from the battery.\n
    \n
    So, my next thought was to add a mosfet to the divider, to switch it on only while measuring:\n
    \n
    ![](https://discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)\n
    \n
    This is obviously bad, because now when the mosfet is off, the ADC input sees the whole battery voltage.\n
    \n
    To address that issue, I’ve added a second mosfet into the measure path:\n
    \n
    ![](https://discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)\n
    \n
    This works, and it does not draw any current, except while measuring.\n
    \n
    However, it’s quite a few parts. So I’m curious if anyone has an idea how to do this with just a single mosfet. It seems to me like it should be possible, but I haven’t figured out how.\n
    \n
    Oh, and if I’m doing something stupid here, please tell me :)
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 11
  +favouriteCount: 17
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1694781042 {#1718
    date: 2023-09-15 14:30:42.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1564 …}
  +votes: Doctrine\ORM\PersistentCollection {#1565 …}
  +reports: Doctrine\ORM\PersistentCollection {#1567 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1883 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1874 …}
  +badges: Doctrine\ORM\PersistentCollection {#1405 …}
  +children: [
    1 => App\Entity\EntryComment {#1614
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1578 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
      +image: null
      +parent: null
      +root: null
      +body: """
        You could use a single MOSFET on the high side of the divider and use a cap + diode to boost the voltage and fully turn on the FET:\n
        \n
        ![](https://lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)\n
        \n
        My gate driver is fairly crude but you could probably make something a bit better with a PNP transistor and either pull it down or leave it floating, or instead use a szaiklai pair
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 2
      +score: 0
      +lastActive: DateTime @1693038333 {#1435
        date: 2023-08-26 10:25:33.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@nilclass@discuss.tchncs.de"
      ]
      +children: Doctrine\ORM\PersistentCollection {#1574 …}
      +nested: Doctrine\ORM\PersistentCollection {#1588 …}
      +votes: Doctrine\ORM\PersistentCollection {#1584 …}
      +reports: Doctrine\ORM\PersistentCollection {#1580 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1585 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1654 …}
      -id: 26785
      -bodyTs: "'/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':31 'better':46 'bit':45 'boost':20 'cap':17 'could':2,40 'crude':37 'diod':18 'divid':13 'driver':34 'either':52 'fair':36 'fet':28 'float':59 'fulli':24 'gate':33 'high':9 'instead':61 'leav':57 'lemmy.ca':30 'lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':29 'make':42 'mosfet':6 'pair':65 'pnp':49 'probabl':41 'pull':53 'side':10 'singl':5 'someth':43 'szaiklai':64 'transistor':50 'turn':25 'use':3,15,62 'voltag':22"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ca/comment/2548436"
      +editedAt: DateTimeImmutable @1692962277 {#1438
        date: 2023-08-25 13:17:57.0 +02:00
      }
      +createdAt: DateTimeImmutable @1692962079 {#1431
        date: 2023-08-25 13:14:39.0 +02:00
      }
      +"title": 26785
    }
    0 => App\Entity\EntryComment {#1525
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1578 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1616 …}
      +root: App\Entity\EntryComment {#1614}
      +body: "It is an N channel FET. The concept is called “bootstrapping” since Vgs needs to be greater than Vth for the MOSFET to be on. When the FET is on the high side and you want the full 9V on the output, you use the diode to charge the capacitor, and the other side of the cap is 0V. Then, when the other side of the cap is connected to 9V, the charge on the cap can’t go anywhere so the voltage on the other side jumps to 18V. This creates a Vgs of 9V. Ideally you would have something better to drive the gate to fully turn off the FET, but I just used a quick and dirty driver where the bootstrap capacitor directly feeds the gate instead of being the input to the driver. Because if this, the Vgs doesn’t drop completely to 0"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 2
      +score: 0
      +lastActive: DateTime @1692976324 {#1666
        date: 2023-08-25 17:12:04.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@nilclass@discuss.tchncs.de"
        "@jjagaimo@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#1711 …}
      +nested: Doctrine\ORM\PersistentCollection {#1692 …}
      +votes: Doctrine\ORM\PersistentCollection {#1686 …}
      +reports: Doctrine\ORM\PersistentCollection {#1680 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1683 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1702 …}
      -id: 26797
      -bodyTs: "'0':148 '0v':59 '18v':90 '9v':39,71,96 'anywher':80 'better':102 'bootstrap':11,124 'call':10 'cap':57,67,76 'capacitor':50,125 'channel':5 'charg':48,73 'complet':146 'concept':8 'connect':69 'creat':92 'diod':46 'direct':126 'dirti':120 'doesn':143 'drive':104 'driver':121,137 'drop':145 'feed':127 'fet':6,28,112 'full':38 'fulli':108 'gate':106,129 'go':79 'greater':17 'high':32 'ideal':97 'input':134 'instead':130 'jump':88 'mosfet':22 'n':4 'need':14 'output':42 'quick':118 'side':33,54,64,87 'sinc':12 'someth':101 'turn':109 'use':44,116 'vgs':13,94,142 'voltag':83 'vth':19 'want':36 'would':99"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ca/comment/2554107"
      +editedAt: null
      +createdAt: DateTimeImmutable @1692976324 {#1561
        date: 2023-08-25 17:12:04.0 +02:00
      }
      +"title": 26797
    }
  ]
  -id: 1944
  -titleTs: "'batteri':5 'circuit':7 'improv':3 'measur':6"
  -bodyTs: "'/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':152 '/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':188 '/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':53 '1.1':69,77 '10':107 '100µa':127 '10kω':88 '5v':5 '9v':12 'abl':73 'ad':178 'adc':85,95,165 'add':137 'address':173 'analog':99 'anyon':213 'approxim':106 'arduino':7 'atmega':83,91 'atmega328p':9 'bad':156 'batteri':28,130,170 'block':13 'bother':118 'buck':16 'chosen':56 'circuit':123 'clone':8 'constant':125 'convert':17 'curious':211 'current':197 'datasheet':92 'discuss.tchncs.de':52,151,187 'discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':150 'discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':186 'discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':51 'divid':50,142 'draw':126,195 'except':198 'figur':239 'first':42 'full':38 'get':33 'great':113 'haven':237 'howev':201 'idea':35,43,216 'imped':104 'input':166 'intern':79 'issu':175 'kω':108 'less':110 'let':22 'like':230 'm':210,246 'measur':26,66,149,184,200 'microcontrol':6,24 'mosfet':139,161,181,225 'next':133 'obvious':155 'occasion':25 'oh':242 'optim':97 'output':67,103 'part':207 'path':185 'pleas':251 'possibl':234 'power':3 'quit':204 'r1':86 'r2':87 'refer':80 'resistor':58 'say':93 'second':180 'see':167 'seem':227 'signal':100 'simpl':48 'sinc':89 'singl':224 'someth':248 'stupid':249 'switch':144 'tell':252 'thought':134 'use':10,46,75 'v':70,78 'valu':59 've':55,177 'voltag':29,49,63,171 'want':20 'whole':169 'work':190"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1693029637
  +visibility: "visible             "
  +apId: "https://discuss.tchncs.de/post/2309537"
  +editedAt: DateTimeImmutable @1692947232 {#1696
    date: 2023-08-25 09:07:12.0 +02:00
  }
  +createdAt: DateTimeImmutable @1692947137 {#1732
    date: 2023-08-25 09:05:37.0 +02:00
  }
  +__isInitialized__: true
   …2
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
3 DENIED edit
Proxies\__CG__\App\Entity\Entry {#1578
  +user: Proxies\__CG__\App\Entity\User {#2471 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#2385 …}
  +slug: "How-to-improve-my-battery-measurement-circuit"
  +title: "How to improve my battery measurement circuit?"
  +url: null
  +body: """
    I am powering a 5V microcontroller (arduino clone, atmega328p) using a 9V block and a buck converter. Now I want to let the microcontroller occasionally measure the battery voltage, so I can get an idea of how full it is.\n
    \n
    My first idea was to use a simple voltage divider:\n
    \n
    ![](https://discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)\n
    \n
    I’ve chosen the resistor values so that:\n
    \n
    - the voltage at the measure output is `< 1.1V`, to be able to use the 1.1V internal reference of the atmega’s ADC\n
    - `R1 || R2 < 10kΩ`, since the atmega datasheet says “The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less”\n
    \n
    This is great and all, but what bothers me is that this circuit will constantly draw ~100µA from the battery.\n
    \n
    So, my next thought was to add a mosfet to the divider, to switch it on only while measuring:\n
    \n
    ![](https://discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)\n
    \n
    This is obviously bad, because now when the mosfet is off, the ADC input sees the whole battery voltage.\n
    \n
    To address that issue, I’ve added a second mosfet into the measure path:\n
    \n
    ![](https://discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)\n
    \n
    This works, and it does not draw any current, except while measuring.\n
    \n
    However, it’s quite a few parts. So I’m curious if anyone has an idea how to do this with just a single mosfet. It seems to me like it should be possible, but I haven’t figured out how.\n
    \n
    Oh, and if I’m doing something stupid here, please tell me :)
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 11
  +favouriteCount: 17
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1694781042 {#1718
    date: 2023-09-15 14:30:42.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1564 …}
  +votes: Doctrine\ORM\PersistentCollection {#1565 …}
  +reports: Doctrine\ORM\PersistentCollection {#1567 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1883 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1874 …}
  +badges: Doctrine\ORM\PersistentCollection {#1405 …}
  +children: [
    1 => App\Entity\EntryComment {#1614
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1578 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
      +image: null
      +parent: null
      +root: null
      +body: """
        You could use a single MOSFET on the high side of the divider and use a cap + diode to boost the voltage and fully turn on the FET:\n
        \n
        ![](https://lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)\n
        \n
        My gate driver is fairly crude but you could probably make something a bit better with a PNP transistor and either pull it down or leave it floating, or instead use a szaiklai pair
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 2
      +score: 0
      +lastActive: DateTime @1693038333 {#1435
        date: 2023-08-26 10:25:33.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@nilclass@discuss.tchncs.de"
      ]
      +children: Doctrine\ORM\PersistentCollection {#1574 …}
      +nested: Doctrine\ORM\PersistentCollection {#1588 …}
      +votes: Doctrine\ORM\PersistentCollection {#1584 …}
      +reports: Doctrine\ORM\PersistentCollection {#1580 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1585 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1654 …}
      -id: 26785
      -bodyTs: "'/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':31 'better':46 'bit':45 'boost':20 'cap':17 'could':2,40 'crude':37 'diod':18 'divid':13 'driver':34 'either':52 'fair':36 'fet':28 'float':59 'fulli':24 'gate':33 'high':9 'instead':61 'leav':57 'lemmy.ca':30 'lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':29 'make':42 'mosfet':6 'pair':65 'pnp':49 'probabl':41 'pull':53 'side':10 'singl':5 'someth':43 'szaiklai':64 'transistor':50 'turn':25 'use':3,15,62 'voltag':22"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ca/comment/2548436"
      +editedAt: DateTimeImmutable @1692962277 {#1438
        date: 2023-08-25 13:17:57.0 +02:00
      }
      +createdAt: DateTimeImmutable @1692962079 {#1431
        date: 2023-08-25 13:14:39.0 +02:00
      }
      +"title": 26785
    }
    0 => App\Entity\EntryComment {#1525
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1578 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1616 …}
      +root: App\Entity\EntryComment {#1614}
      +body: "It is an N channel FET. The concept is called “bootstrapping” since Vgs needs to be greater than Vth for the MOSFET to be on. When the FET is on the high side and you want the full 9V on the output, you use the diode to charge the capacitor, and the other side of the cap is 0V. Then, when the other side of the cap is connected to 9V, the charge on the cap can’t go anywhere so the voltage on the other side jumps to 18V. This creates a Vgs of 9V. Ideally you would have something better to drive the gate to fully turn off the FET, but I just used a quick and dirty driver where the bootstrap capacitor directly feeds the gate instead of being the input to the driver. Because if this, the Vgs doesn’t drop completely to 0"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 2
      +score: 0
      +lastActive: DateTime @1692976324 {#1666
        date: 2023-08-25 17:12:04.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@nilclass@discuss.tchncs.de"
        "@jjagaimo@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#1711 …}
      +nested: Doctrine\ORM\PersistentCollection {#1692 …}
      +votes: Doctrine\ORM\PersistentCollection {#1686 …}
      +reports: Doctrine\ORM\PersistentCollection {#1680 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1683 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1702 …}
      -id: 26797
      -bodyTs: "'0':148 '0v':59 '18v':90 '9v':39,71,96 'anywher':80 'better':102 'bootstrap':11,124 'call':10 'cap':57,67,76 'capacitor':50,125 'channel':5 'charg':48,73 'complet':146 'concept':8 'connect':69 'creat':92 'diod':46 'direct':126 'dirti':120 'doesn':143 'drive':104 'driver':121,137 'drop':145 'feed':127 'fet':6,28,112 'full':38 'fulli':108 'gate':106,129 'go':79 'greater':17 'high':32 'ideal':97 'input':134 'instead':130 'jump':88 'mosfet':22 'n':4 'need':14 'output':42 'quick':118 'side':33,54,64,87 'sinc':12 'someth':101 'turn':109 'use':44,116 'vgs':13,94,142 'voltag':83 'vth':19 'want':36 'would':99"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ca/comment/2554107"
      +editedAt: null
      +createdAt: DateTimeImmutable @1692976324 {#1561
        date: 2023-08-25 17:12:04.0 +02:00
      }
      +"title": 26797
    }
  ]
  -id: 1944
  -titleTs: "'batteri':5 'circuit':7 'improv':3 'measur':6"
  -bodyTs: "'/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':152 '/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':188 '/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':53 '1.1':69,77 '10':107 '100µa':127 '10kω':88 '5v':5 '9v':12 'abl':73 'ad':178 'adc':85,95,165 'add':137 'address':173 'analog':99 'anyon':213 'approxim':106 'arduino':7 'atmega':83,91 'atmega328p':9 'bad':156 'batteri':28,130,170 'block':13 'bother':118 'buck':16 'chosen':56 'circuit':123 'clone':8 'constant':125 'convert':17 'curious':211 'current':197 'datasheet':92 'discuss.tchncs.de':52,151,187 'discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':150 'discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':186 'discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':51 'divid':50,142 'draw':126,195 'except':198 'figur':239 'first':42 'full':38 'get':33 'great':113 'haven':237 'howev':201 'idea':35,43,216 'imped':104 'input':166 'intern':79 'issu':175 'kω':108 'less':110 'let':22 'like':230 'm':210,246 'measur':26,66,149,184,200 'microcontrol':6,24 'mosfet':139,161,181,225 'next':133 'obvious':155 'occasion':25 'oh':242 'optim':97 'output':67,103 'part':207 'path':185 'pleas':251 'possibl':234 'power':3 'quit':204 'r1':86 'r2':87 'refer':80 'resistor':58 'say':93 'second':180 'see':167 'seem':227 'signal':100 'simpl':48 'sinc':89 'singl':224 'someth':248 'stupid':249 'switch':144 'tell':252 'thought':134 'use':10,46,75 'v':70,78 'valu':59 've':55,177 'voltag':29,49,63,171 'want':20 'whole':169 'work':190"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1693029637
  +visibility: "visible             "
  +apId: "https://discuss.tchncs.de/post/2309537"
  +editedAt: DateTimeImmutable @1692947232 {#1696
    date: 2023-08-25 09:07:12.0 +02:00
  }
  +createdAt: DateTimeImmutable @1692947137 {#1732
    date: 2023-08-25 09:05:37.0 +02:00
  }
  +__isInitialized__: true
   …2
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
4 DENIED moderate
Proxies\__CG__\App\Entity\Entry {#1578
  +user: Proxies\__CG__\App\Entity\User {#2471 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#2385 …}
  +slug: "How-to-improve-my-battery-measurement-circuit"
  +title: "How to improve my battery measurement circuit?"
  +url: null
  +body: """
    I am powering a 5V microcontroller (arduino clone, atmega328p) using a 9V block and a buck converter. Now I want to let the microcontroller occasionally measure the battery voltage, so I can get an idea of how full it is.\n
    \n
    My first idea was to use a simple voltage divider:\n
    \n
    ![](https://discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)\n
    \n
    I’ve chosen the resistor values so that:\n
    \n
    - the voltage at the measure output is `< 1.1V`, to be able to use the 1.1V internal reference of the atmega’s ADC\n
    - `R1 || R2 < 10kΩ`, since the atmega datasheet says “The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less”\n
    \n
    This is great and all, but what bothers me is that this circuit will constantly draw ~100µA from the battery.\n
    \n
    So, my next thought was to add a mosfet to the divider, to switch it on only while measuring:\n
    \n
    ![](https://discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)\n
    \n
    This is obviously bad, because now when the mosfet is off, the ADC input sees the whole battery voltage.\n
    \n
    To address that issue, I’ve added a second mosfet into the measure path:\n
    \n
    ![](https://discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)\n
    \n
    This works, and it does not draw any current, except while measuring.\n
    \n
    However, it’s quite a few parts. So I’m curious if anyone has an idea how to do this with just a single mosfet. It seems to me like it should be possible, but I haven’t figured out how.\n
    \n
    Oh, and if I’m doing something stupid here, please tell me :)
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 11
  +favouriteCount: 17
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1694781042 {#1718
    date: 2023-09-15 14:30:42.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1564 …}
  +votes: Doctrine\ORM\PersistentCollection {#1565 …}
  +reports: Doctrine\ORM\PersistentCollection {#1567 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1883 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1874 …}
  +badges: Doctrine\ORM\PersistentCollection {#1405 …}
  +children: [
    1 => App\Entity\EntryComment {#1614
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1578 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
      +image: null
      +parent: null
      +root: null
      +body: """
        You could use a single MOSFET on the high side of the divider and use a cap + diode to boost the voltage and fully turn on the FET:\n
        \n
        ![](https://lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)\n
        \n
        My gate driver is fairly crude but you could probably make something a bit better with a PNP transistor and either pull it down or leave it floating, or instead use a szaiklai pair
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 2
      +score: 0
      +lastActive: DateTime @1693038333 {#1435
        date: 2023-08-26 10:25:33.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@nilclass@discuss.tchncs.de"
      ]
      +children: Doctrine\ORM\PersistentCollection {#1574 …}
      +nested: Doctrine\ORM\PersistentCollection {#1588 …}
      +votes: Doctrine\ORM\PersistentCollection {#1584 …}
      +reports: Doctrine\ORM\PersistentCollection {#1580 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1585 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1654 …}
      -id: 26785
      -bodyTs: "'/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':31 'better':46 'bit':45 'boost':20 'cap':17 'could':2,40 'crude':37 'diod':18 'divid':13 'driver':34 'either':52 'fair':36 'fet':28 'float':59 'fulli':24 'gate':33 'high':9 'instead':61 'leav':57 'lemmy.ca':30 'lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':29 'make':42 'mosfet':6 'pair':65 'pnp':49 'probabl':41 'pull':53 'side':10 'singl':5 'someth':43 'szaiklai':64 'transistor':50 'turn':25 'use':3,15,62 'voltag':22"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ca/comment/2548436"
      +editedAt: DateTimeImmutable @1692962277 {#1438
        date: 2023-08-25 13:17:57.0 +02:00
      }
      +createdAt: DateTimeImmutable @1692962079 {#1431
        date: 2023-08-25 13:14:39.0 +02:00
      }
      +"title": 26785
    }
    0 => App\Entity\EntryComment {#1525
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1578 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1616 …}
      +root: App\Entity\EntryComment {#1614}
      +body: "It is an N channel FET. The concept is called “bootstrapping” since Vgs needs to be greater than Vth for the MOSFET to be on. When the FET is on the high side and you want the full 9V on the output, you use the diode to charge the capacitor, and the other side of the cap is 0V. Then, when the other side of the cap is connected to 9V, the charge on the cap can’t go anywhere so the voltage on the other side jumps to 18V. This creates a Vgs of 9V. Ideally you would have something better to drive the gate to fully turn off the FET, but I just used a quick and dirty driver where the bootstrap capacitor directly feeds the gate instead of being the input to the driver. Because if this, the Vgs doesn’t drop completely to 0"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 2
      +score: 0
      +lastActive: DateTime @1692976324 {#1666
        date: 2023-08-25 17:12:04.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@nilclass@discuss.tchncs.de"
        "@jjagaimo@lemmy.ca"
      ]
      +children: Doctrine\ORM\PersistentCollection {#1711 …}
      +nested: Doctrine\ORM\PersistentCollection {#1692 …}
      +votes: Doctrine\ORM\PersistentCollection {#1686 …}
      +reports: Doctrine\ORM\PersistentCollection {#1680 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1683 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1702 …}
      -id: 26797
      -bodyTs: "'0':148 '0v':59 '18v':90 '9v':39,71,96 'anywher':80 'better':102 'bootstrap':11,124 'call':10 'cap':57,67,76 'capacitor':50,125 'channel':5 'charg':48,73 'complet':146 'concept':8 'connect':69 'creat':92 'diod':46 'direct':126 'dirti':120 'doesn':143 'drive':104 'driver':121,137 'drop':145 'feed':127 'fet':6,28,112 'full':38 'fulli':108 'gate':106,129 'go':79 'greater':17 'high':32 'ideal':97 'input':134 'instead':130 'jump':88 'mosfet':22 'n':4 'need':14 'output':42 'quick':118 'side':33,54,64,87 'sinc':12 'someth':101 'turn':109 'use':44,116 'vgs':13,94,142 'voltag':83 'vth':19 'want':36 'would':99"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ca/comment/2554107"
      +editedAt: null
      +createdAt: DateTimeImmutable @1692976324 {#1561
        date: 2023-08-25 17:12:04.0 +02:00
      }
      +"title": 26797
    }
  ]
  -id: 1944
  -titleTs: "'batteri':5 'circuit':7 'improv':3 'measur':6"
  -bodyTs: "'/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':152 '/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':188 '/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':53 '1.1':69,77 '10':107 '100µa':127 '10kω':88 '5v':5 '9v':12 'abl':73 'ad':178 'adc':85,95,165 'add':137 'address':173 'analog':99 'anyon':213 'approxim':106 'arduino':7 'atmega':83,91 'atmega328p':9 'bad':156 'batteri':28,130,170 'block':13 'bother':118 'buck':16 'chosen':56 'circuit':123 'clone':8 'constant':125 'convert':17 'curious':211 'current':197 'datasheet':92 'discuss.tchncs.de':52,151,187 'discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':150 'discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':186 'discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':51 'divid':50,142 'draw':126,195 'except':198 'figur':239 'first':42 'full':38 'get':33 'great':113 'haven':237 'howev':201 'idea':35,43,216 'imped':104 'input':166 'intern':79 'issu':175 'kω':108 'less':110 'let':22 'like':230 'm':210,246 'measur':26,66,149,184,200 'microcontrol':6,24 'mosfet':139,161,181,225 'next':133 'obvious':155 'occasion':25 'oh':242 'optim':97 'output':67,103 'part':207 'path':185 'pleas':251 'possibl':234 'power':3 'quit':204 'r1':86 'r2':87 'refer':80 'resistor':58 'say':93 'second':180 'see':167 'seem':227 'signal':100 'simpl':48 'sinc':89 'singl':224 'someth':248 'stupid':249 'switch':144 'tell':252 'thought':134 'use':10,46,75 'v':70,78 'valu':59 've':55,177 'voltag':29,49,63,171 'want':20 'whole':169 'work':190"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1693029637
  +visibility: "visible             "
  +apId: "https://discuss.tchncs.de/post/2309537"
  +editedAt: DateTimeImmutable @1692947232 {#1696
    date: 2023-08-25 09:07:12.0 +02:00
  }
  +createdAt: DateTimeImmutable @1692947137 {#1732
    date: 2023-08-25 09:05:37.0 +02:00
  }
  +__isInitialized__: true
   …2
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
5 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
6 DENIED moderate
App\Entity\EntryComment {#1614
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1578
    +user: Proxies\__CG__\App\Entity\User {#2471 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#2385 …}
    +slug: "How-to-improve-my-battery-measurement-circuit"
    +title: "How to improve my battery measurement circuit?"
    +url: null
    +body: """
      I am powering a 5V microcontroller (arduino clone, atmega328p) using a 9V block and a buck converter. Now I want to let the microcontroller occasionally measure the battery voltage, so I can get an idea of how full it is.\n
      \n
      My first idea was to use a simple voltage divider:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)\n
      \n
      I’ve chosen the resistor values so that:\n
      \n
      - the voltage at the measure output is `< 1.1V`, to be able to use the 1.1V internal reference of the atmega’s ADC\n
      - `R1 || R2 < 10kΩ`, since the atmega datasheet says “The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less”\n
      \n
      This is great and all, but what bothers me is that this circuit will constantly draw ~100µA from the battery.\n
      \n
      So, my next thought was to add a mosfet to the divider, to switch it on only while measuring:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)\n
      \n
      This is obviously bad, because now when the mosfet is off, the ADC input sees the whole battery voltage.\n
      \n
      To address that issue, I’ve added a second mosfet into the measure path:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)\n
      \n
      This works, and it does not draw any current, except while measuring.\n
      \n
      However, it’s quite a few parts. So I’m curious if anyone has an idea how to do this with just a single mosfet. It seems to me like it should be possible, but I haven’t figured out how.\n
      \n
      Oh, and if I’m doing something stupid here, please tell me :)
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 11
    +favouriteCount: 17
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1694781042 {#1718
      date: 2023-09-15 14:30:42.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1564 …}
    +votes: Doctrine\ORM\PersistentCollection {#1565 …}
    +reports: Doctrine\ORM\PersistentCollection {#1567 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1883 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1874 …}
    +badges: Doctrine\ORM\PersistentCollection {#1405 …}
    +children: [
      1 => App\Entity\EntryComment {#1614}
      0 => App\Entity\EntryComment {#1525
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1578 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1616 …}
        +root: App\Entity\EntryComment {#1614}
        +body: "It is an N channel FET. The concept is called “bootstrapping” since Vgs needs to be greater than Vth for the MOSFET to be on. When the FET is on the high side and you want the full 9V on the output, you use the diode to charge the capacitor, and the other side of the cap is 0V. Then, when the other side of the cap is connected to 9V, the charge on the cap can’t go anywhere so the voltage on the other side jumps to 18V. This creates a Vgs of 9V. Ideally you would have something better to drive the gate to fully turn off the FET, but I just used a quick and dirty driver where the bootstrap capacitor directly feeds the gate instead of being the input to the driver. Because if this, the Vgs doesn’t drop completely to 0"
        +lang: "en"
        +isAdult: false
        +favouriteCount: 2
        +score: 0
        +lastActive: DateTime @1692976324 {#1666
          date: 2023-08-25 17:12:04.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@nilclass@discuss.tchncs.de"
          "@jjagaimo@lemmy.ca"
        ]
        +children: Doctrine\ORM\PersistentCollection {#1711 …}
        +nested: Doctrine\ORM\PersistentCollection {#1692 …}
        +votes: Doctrine\ORM\PersistentCollection {#1686 …}
        +reports: Doctrine\ORM\PersistentCollection {#1680 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1683 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1702 …}
        -id: 26797
        -bodyTs: "'0':148 '0v':59 '18v':90 '9v':39,71,96 'anywher':80 'better':102 'bootstrap':11,124 'call':10 'cap':57,67,76 'capacitor':50,125 'channel':5 'charg':48,73 'complet':146 'concept':8 'connect':69 'creat':92 'diod':46 'direct':126 'dirti':120 'doesn':143 'drive':104 'driver':121,137 'drop':145 'feed':127 'fet':6,28,112 'full':38 'fulli':108 'gate':106,129 'go':79 'greater':17 'high':32 'ideal':97 'input':134 'instead':130 'jump':88 'mosfet':22 'n':4 'need':14 'output':42 'quick':118 'side':33,54,64,87 'sinc':12 'someth':101 'turn':109 'use':44,116 'vgs':13,94,142 'voltag':83 'vth':19 'want':36 'would':99"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.ca/comment/2554107"
        +editedAt: null
        +createdAt: DateTimeImmutable @1692976324 {#1561
          date: 2023-08-25 17:12:04.0 +02:00
        }
        +"title": 26797
      }
    ]
    -id: 1944
    -titleTs: "'batteri':5 'circuit':7 'improv':3 'measur':6"
    -bodyTs: "'/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':152 '/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':188 '/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':53 '1.1':69,77 '10':107 '100µa':127 '10kω':88 '5v':5 '9v':12 'abl':73 'ad':178 'adc':85,95,165 'add':137 'address':173 'analog':99 'anyon':213 'approxim':106 'arduino':7 'atmega':83,91 'atmega328p':9 'bad':156 'batteri':28,130,170 'block':13 'bother':118 'buck':16 'chosen':56 'circuit':123 'clone':8 'constant':125 'convert':17 'curious':211 'current':197 'datasheet':92 'discuss.tchncs.de':52,151,187 'discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':150 'discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':186 'discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':51 'divid':50,142 'draw':126,195 'except':198 'figur':239 'first':42 'full':38 'get':33 'great':113 'haven':237 'howev':201 'idea':35,43,216 'imped':104 'input':166 'intern':79 'issu':175 'kω':108 'less':110 'let':22 'like':230 'm':210,246 'measur':26,66,149,184,200 'microcontrol':6,24 'mosfet':139,161,181,225 'next':133 'obvious':155 'occasion':25 'oh':242 'optim':97 'output':67,103 'part':207 'path':185 'pleas':251 'possibl':234 'power':3 'quit':204 'r1':86 'r2':87 'refer':80 'resistor':58 'say':93 'second':180 'see':167 'seem':227 'signal':100 'simpl':48 'sinc':89 'singl':224 'someth':248 'stupid':249 'switch':144 'tell':252 'thought':134 'use':10,46,75 'v':70,78 'valu':59 've':55,177 'voltag':29,49,63,171 'want':20 'whole':169 'work':190"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1693029637
    +visibility: "visible             "
    +apId: "https://discuss.tchncs.de/post/2309537"
    +editedAt: DateTimeImmutable @1692947232 {#1696
      date: 2023-08-25 09:07:12.0 +02:00
    }
    +createdAt: DateTimeImmutable @1692947137 {#1732
      date: 2023-08-25 09:05:37.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
  +image: null
  +parent: null
  +root: null
  +body: """
    You could use a single MOSFET on the high side of the divider and use a cap + diode to boost the voltage and fully turn on the FET:\n
    \n
    ![](https://lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)\n
    \n
    My gate driver is fairly crude but you could probably make something a bit better with a PNP transistor and either pull it down or leave it floating, or instead use a szaiklai pair
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1693038333 {#1435
    date: 2023-08-26 10:25:33.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@nilclass@discuss.tchncs.de"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1574 …}
  +nested: Doctrine\ORM\PersistentCollection {#1588 …}
  +votes: Doctrine\ORM\PersistentCollection {#1584 …}
  +reports: Doctrine\ORM\PersistentCollection {#1580 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1585 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1654 …}
  -id: 26785
  -bodyTs: "'/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':31 'better':46 'bit':45 'boost':20 'cap':17 'could':2,40 'crude':37 'diod':18 'divid':13 'driver':34 'either':52 'fair':36 'fet':28 'float':59 'fulli':24 'gate':33 'high':9 'instead':61 'leav':57 'lemmy.ca':30 'lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':29 'make':42 'mosfet':6 'pair':65 'pnp':49 'probabl':41 'pull':53 'side':10 'singl':5 'someth':43 'szaiklai':64 'transistor':50 'turn':25 'use':3,15,62 'voltag':22"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/2548436"
  +editedAt: DateTimeImmutable @1692962277 {#1438
    date: 2023-08-25 13:17:57.0 +02:00
  }
  +createdAt: DateTimeImmutable @1692962079 {#1431
    date: 2023-08-25 13:14:39.0 +02:00
  }
  +"title": 26785
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
7 DENIED edit
App\Entity\EntryComment {#1614
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1578
    +user: Proxies\__CG__\App\Entity\User {#2471 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#2385 …}
    +slug: "How-to-improve-my-battery-measurement-circuit"
    +title: "How to improve my battery measurement circuit?"
    +url: null
    +body: """
      I am powering a 5V microcontroller (arduino clone, atmega328p) using a 9V block and a buck converter. Now I want to let the microcontroller occasionally measure the battery voltage, so I can get an idea of how full it is.\n
      \n
      My first idea was to use a simple voltage divider:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)\n
      \n
      I’ve chosen the resistor values so that:\n
      \n
      - the voltage at the measure output is `< 1.1V`, to be able to use the 1.1V internal reference of the atmega’s ADC\n
      - `R1 || R2 < 10kΩ`, since the atmega datasheet says “The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less”\n
      \n
      This is great and all, but what bothers me is that this circuit will constantly draw ~100µA from the battery.\n
      \n
      So, my next thought was to add a mosfet to the divider, to switch it on only while measuring:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)\n
      \n
      This is obviously bad, because now when the mosfet is off, the ADC input sees the whole battery voltage.\n
      \n
      To address that issue, I’ve added a second mosfet into the measure path:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)\n
      \n
      This works, and it does not draw any current, except while measuring.\n
      \n
      However, it’s quite a few parts. So I’m curious if anyone has an idea how to do this with just a single mosfet. It seems to me like it should be possible, but I haven’t figured out how.\n
      \n
      Oh, and if I’m doing something stupid here, please tell me :)
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 11
    +favouriteCount: 17
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1694781042 {#1718
      date: 2023-09-15 14:30:42.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1564 …}
    +votes: Doctrine\ORM\PersistentCollection {#1565 …}
    +reports: Doctrine\ORM\PersistentCollection {#1567 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1883 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1874 …}
    +badges: Doctrine\ORM\PersistentCollection {#1405 …}
    +children: [
      1 => App\Entity\EntryComment {#1614}
      0 => App\Entity\EntryComment {#1525
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1578 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1616 …}
        +root: App\Entity\EntryComment {#1614}
        +body: "It is an N channel FET. The concept is called “bootstrapping” since Vgs needs to be greater than Vth for the MOSFET to be on. When the FET is on the high side and you want the full 9V on the output, you use the diode to charge the capacitor, and the other side of the cap is 0V. Then, when the other side of the cap is connected to 9V, the charge on the cap can’t go anywhere so the voltage on the other side jumps to 18V. This creates a Vgs of 9V. Ideally you would have something better to drive the gate to fully turn off the FET, but I just used a quick and dirty driver where the bootstrap capacitor directly feeds the gate instead of being the input to the driver. Because if this, the Vgs doesn’t drop completely to 0"
        +lang: "en"
        +isAdult: false
        +favouriteCount: 2
        +score: 0
        +lastActive: DateTime @1692976324 {#1666
          date: 2023-08-25 17:12:04.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@nilclass@discuss.tchncs.de"
          "@jjagaimo@lemmy.ca"
        ]
        +children: Doctrine\ORM\PersistentCollection {#1711 …}
        +nested: Doctrine\ORM\PersistentCollection {#1692 …}
        +votes: Doctrine\ORM\PersistentCollection {#1686 …}
        +reports: Doctrine\ORM\PersistentCollection {#1680 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1683 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1702 …}
        -id: 26797
        -bodyTs: "'0':148 '0v':59 '18v':90 '9v':39,71,96 'anywher':80 'better':102 'bootstrap':11,124 'call':10 'cap':57,67,76 'capacitor':50,125 'channel':5 'charg':48,73 'complet':146 'concept':8 'connect':69 'creat':92 'diod':46 'direct':126 'dirti':120 'doesn':143 'drive':104 'driver':121,137 'drop':145 'feed':127 'fet':6,28,112 'full':38 'fulli':108 'gate':106,129 'go':79 'greater':17 'high':32 'ideal':97 'input':134 'instead':130 'jump':88 'mosfet':22 'n':4 'need':14 'output':42 'quick':118 'side':33,54,64,87 'sinc':12 'someth':101 'turn':109 'use':44,116 'vgs':13,94,142 'voltag':83 'vth':19 'want':36 'would':99"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.ca/comment/2554107"
        +editedAt: null
        +createdAt: DateTimeImmutable @1692976324 {#1561
          date: 2023-08-25 17:12:04.0 +02:00
        }
        +"title": 26797
      }
    ]
    -id: 1944
    -titleTs: "'batteri':5 'circuit':7 'improv':3 'measur':6"
    -bodyTs: "'/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':152 '/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':188 '/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':53 '1.1':69,77 '10':107 '100µa':127 '10kω':88 '5v':5 '9v':12 'abl':73 'ad':178 'adc':85,95,165 'add':137 'address':173 'analog':99 'anyon':213 'approxim':106 'arduino':7 'atmega':83,91 'atmega328p':9 'bad':156 'batteri':28,130,170 'block':13 'bother':118 'buck':16 'chosen':56 'circuit':123 'clone':8 'constant':125 'convert':17 'curious':211 'current':197 'datasheet':92 'discuss.tchncs.de':52,151,187 'discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':150 'discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':186 'discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':51 'divid':50,142 'draw':126,195 'except':198 'figur':239 'first':42 'full':38 'get':33 'great':113 'haven':237 'howev':201 'idea':35,43,216 'imped':104 'input':166 'intern':79 'issu':175 'kω':108 'less':110 'let':22 'like':230 'm':210,246 'measur':26,66,149,184,200 'microcontrol':6,24 'mosfet':139,161,181,225 'next':133 'obvious':155 'occasion':25 'oh':242 'optim':97 'output':67,103 'part':207 'path':185 'pleas':251 'possibl':234 'power':3 'quit':204 'r1':86 'r2':87 'refer':80 'resistor':58 'say':93 'second':180 'see':167 'seem':227 'signal':100 'simpl':48 'sinc':89 'singl':224 'someth':248 'stupid':249 'switch':144 'tell':252 'thought':134 'use':10,46,75 'v':70,78 'valu':59 've':55,177 'voltag':29,49,63,171 'want':20 'whole':169 'work':190"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1693029637
    +visibility: "visible             "
    +apId: "https://discuss.tchncs.de/post/2309537"
    +editedAt: DateTimeImmutable @1692947232 {#1696
      date: 2023-08-25 09:07:12.0 +02:00
    }
    +createdAt: DateTimeImmutable @1692947137 {#1732
      date: 2023-08-25 09:05:37.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
  +image: null
  +parent: null
  +root: null
  +body: """
    You could use a single MOSFET on the high side of the divider and use a cap + diode to boost the voltage and fully turn on the FET:\n
    \n
    ![](https://lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)\n
    \n
    My gate driver is fairly crude but you could probably make something a bit better with a PNP transistor and either pull it down or leave it floating, or instead use a szaiklai pair
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1693038333 {#1435
    date: 2023-08-26 10:25:33.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@nilclass@discuss.tchncs.de"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1574 …}
  +nested: Doctrine\ORM\PersistentCollection {#1588 …}
  +votes: Doctrine\ORM\PersistentCollection {#1584 …}
  +reports: Doctrine\ORM\PersistentCollection {#1580 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1585 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1654 …}
  -id: 26785
  -bodyTs: "'/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':31 'better':46 'bit':45 'boost':20 'cap':17 'could':2,40 'crude':37 'diod':18 'divid':13 'driver':34 'either':52 'fair':36 'fet':28 'float':59 'fulli':24 'gate':33 'high':9 'instead':61 'leav':57 'lemmy.ca':30 'lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':29 'make':42 'mosfet':6 'pair':65 'pnp':49 'probabl':41 'pull':53 'side':10 'singl':5 'someth':43 'szaiklai':64 'transistor':50 'turn':25 'use':3,15,62 'voltag':22"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/2548436"
  +editedAt: DateTimeImmutable @1692962277 {#1438
    date: 2023-08-25 13:17:57.0 +02:00
  }
  +createdAt: DateTimeImmutable @1692962079 {#1431
    date: 2023-08-25 13:14:39.0 +02:00
  }
  +"title": 26785
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
8 DENIED moderate
App\Entity\EntryComment {#1614
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1578
    +user: Proxies\__CG__\App\Entity\User {#2471 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#2385 …}
    +slug: "How-to-improve-my-battery-measurement-circuit"
    +title: "How to improve my battery measurement circuit?"
    +url: null
    +body: """
      I am powering a 5V microcontroller (arduino clone, atmega328p) using a 9V block and a buck converter. Now I want to let the microcontroller occasionally measure the battery voltage, so I can get an idea of how full it is.\n
      \n
      My first idea was to use a simple voltage divider:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)\n
      \n
      I’ve chosen the resistor values so that:\n
      \n
      - the voltage at the measure output is `< 1.1V`, to be able to use the 1.1V internal reference of the atmega’s ADC\n
      - `R1 || R2 < 10kΩ`, since the atmega datasheet says “The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less”\n
      \n
      This is great and all, but what bothers me is that this circuit will constantly draw ~100µA from the battery.\n
      \n
      So, my next thought was to add a mosfet to the divider, to switch it on only while measuring:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)\n
      \n
      This is obviously bad, because now when the mosfet is off, the ADC input sees the whole battery voltage.\n
      \n
      To address that issue, I’ve added a second mosfet into the measure path:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)\n
      \n
      This works, and it does not draw any current, except while measuring.\n
      \n
      However, it’s quite a few parts. So I’m curious if anyone has an idea how to do this with just a single mosfet. It seems to me like it should be possible, but I haven’t figured out how.\n
      \n
      Oh, and if I’m doing something stupid here, please tell me :)
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 11
    +favouriteCount: 17
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1694781042 {#1718
      date: 2023-09-15 14:30:42.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1564 …}
    +votes: Doctrine\ORM\PersistentCollection {#1565 …}
    +reports: Doctrine\ORM\PersistentCollection {#1567 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1883 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1874 …}
    +badges: Doctrine\ORM\PersistentCollection {#1405 …}
    +children: [
      1 => App\Entity\EntryComment {#1614}
      0 => App\Entity\EntryComment {#1525
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1578 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1616 …}
        +root: App\Entity\EntryComment {#1614}
        +body: "It is an N channel FET. The concept is called “bootstrapping” since Vgs needs to be greater than Vth for the MOSFET to be on. When the FET is on the high side and you want the full 9V on the output, you use the diode to charge the capacitor, and the other side of the cap is 0V. Then, when the other side of the cap is connected to 9V, the charge on the cap can’t go anywhere so the voltage on the other side jumps to 18V. This creates a Vgs of 9V. Ideally you would have something better to drive the gate to fully turn off the FET, but I just used a quick and dirty driver where the bootstrap capacitor directly feeds the gate instead of being the input to the driver. Because if this, the Vgs doesn’t drop completely to 0"
        +lang: "en"
        +isAdult: false
        +favouriteCount: 2
        +score: 0
        +lastActive: DateTime @1692976324 {#1666
          date: 2023-08-25 17:12:04.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@nilclass@discuss.tchncs.de"
          "@jjagaimo@lemmy.ca"
        ]
        +children: Doctrine\ORM\PersistentCollection {#1711 …}
        +nested: Doctrine\ORM\PersistentCollection {#1692 …}
        +votes: Doctrine\ORM\PersistentCollection {#1686 …}
        +reports: Doctrine\ORM\PersistentCollection {#1680 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1683 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1702 …}
        -id: 26797
        -bodyTs: "'0':148 '0v':59 '18v':90 '9v':39,71,96 'anywher':80 'better':102 'bootstrap':11,124 'call':10 'cap':57,67,76 'capacitor':50,125 'channel':5 'charg':48,73 'complet':146 'concept':8 'connect':69 'creat':92 'diod':46 'direct':126 'dirti':120 'doesn':143 'drive':104 'driver':121,137 'drop':145 'feed':127 'fet':6,28,112 'full':38 'fulli':108 'gate':106,129 'go':79 'greater':17 'high':32 'ideal':97 'input':134 'instead':130 'jump':88 'mosfet':22 'n':4 'need':14 'output':42 'quick':118 'side':33,54,64,87 'sinc':12 'someth':101 'turn':109 'use':44,116 'vgs':13,94,142 'voltag':83 'vth':19 'want':36 'would':99"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.ca/comment/2554107"
        +editedAt: null
        +createdAt: DateTimeImmutable @1692976324 {#1561
          date: 2023-08-25 17:12:04.0 +02:00
        }
        +"title": 26797
      }
    ]
    -id: 1944
    -titleTs: "'batteri':5 'circuit':7 'improv':3 'measur':6"
    -bodyTs: "'/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':152 '/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':188 '/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':53 '1.1':69,77 '10':107 '100µa':127 '10kω':88 '5v':5 '9v':12 'abl':73 'ad':178 'adc':85,95,165 'add':137 'address':173 'analog':99 'anyon':213 'approxim':106 'arduino':7 'atmega':83,91 'atmega328p':9 'bad':156 'batteri':28,130,170 'block':13 'bother':118 'buck':16 'chosen':56 'circuit':123 'clone':8 'constant':125 'convert':17 'curious':211 'current':197 'datasheet':92 'discuss.tchncs.de':52,151,187 'discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':150 'discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':186 'discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':51 'divid':50,142 'draw':126,195 'except':198 'figur':239 'first':42 'full':38 'get':33 'great':113 'haven':237 'howev':201 'idea':35,43,216 'imped':104 'input':166 'intern':79 'issu':175 'kω':108 'less':110 'let':22 'like':230 'm':210,246 'measur':26,66,149,184,200 'microcontrol':6,24 'mosfet':139,161,181,225 'next':133 'obvious':155 'occasion':25 'oh':242 'optim':97 'output':67,103 'part':207 'path':185 'pleas':251 'possibl':234 'power':3 'quit':204 'r1':86 'r2':87 'refer':80 'resistor':58 'say':93 'second':180 'see':167 'seem':227 'signal':100 'simpl':48 'sinc':89 'singl':224 'someth':248 'stupid':249 'switch':144 'tell':252 'thought':134 'use':10,46,75 'v':70,78 'valu':59 've':55,177 'voltag':29,49,63,171 'want':20 'whole':169 'work':190"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1693029637
    +visibility: "visible             "
    +apId: "https://discuss.tchncs.de/post/2309537"
    +editedAt: DateTimeImmutable @1692947232 {#1696
      date: 2023-08-25 09:07:12.0 +02:00
    }
    +createdAt: DateTimeImmutable @1692947137 {#1732
      date: 2023-08-25 09:05:37.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
  +image: null
  +parent: null
  +root: null
  +body: """
    You could use a single MOSFET on the high side of the divider and use a cap + diode to boost the voltage and fully turn on the FET:\n
    \n
    ![](https://lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)\n
    \n
    My gate driver is fairly crude but you could probably make something a bit better with a PNP transistor and either pull it down or leave it floating, or instead use a szaiklai pair
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1693038333 {#1435
    date: 2023-08-26 10:25:33.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@nilclass@discuss.tchncs.de"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1574 …}
  +nested: Doctrine\ORM\PersistentCollection {#1588 …}
  +votes: Doctrine\ORM\PersistentCollection {#1584 …}
  +reports: Doctrine\ORM\PersistentCollection {#1580 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1585 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1654 …}
  -id: 26785
  -bodyTs: "'/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':31 'better':46 'bit':45 'boost':20 'cap':17 'could':2,40 'crude':37 'diod':18 'divid':13 'driver':34 'either':52 'fair':36 'fet':28 'float':59 'fulli':24 'gate':33 'high':9 'instead':61 'leav':57 'lemmy.ca':30 'lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':29 'make':42 'mosfet':6 'pair':65 'pnp':49 'probabl':41 'pull':53 'side':10 'singl':5 'someth':43 'szaiklai':64 'transistor':50 'turn':25 'use':3,15,62 'voltag':22"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/2548436"
  +editedAt: DateTimeImmutable @1692962277 {#1438
    date: 2023-08-25 13:17:57.0 +02:00
  }
  +createdAt: DateTimeImmutable @1692962079 {#1431
    date: 2023-08-25 13:14:39.0 +02:00
  }
  +"title": 26785
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
9 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
10 DENIED moderate
App\Entity\EntryComment {#1525
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1578
    +user: Proxies\__CG__\App\Entity\User {#2471 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#2385 …}
    +slug: "How-to-improve-my-battery-measurement-circuit"
    +title: "How to improve my battery measurement circuit?"
    +url: null
    +body: """
      I am powering a 5V microcontroller (arduino clone, atmega328p) using a 9V block and a buck converter. Now I want to let the microcontroller occasionally measure the battery voltage, so I can get an idea of how full it is.\n
      \n
      My first idea was to use a simple voltage divider:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)\n
      \n
      I’ve chosen the resistor values so that:\n
      \n
      - the voltage at the measure output is `< 1.1V`, to be able to use the 1.1V internal reference of the atmega’s ADC\n
      - `R1 || R2 < 10kΩ`, since the atmega datasheet says “The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less”\n
      \n
      This is great and all, but what bothers me is that this circuit will constantly draw ~100µA from the battery.\n
      \n
      So, my next thought was to add a mosfet to the divider, to switch it on only while measuring:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)\n
      \n
      This is obviously bad, because now when the mosfet is off, the ADC input sees the whole battery voltage.\n
      \n
      To address that issue, I’ve added a second mosfet into the measure path:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)\n
      \n
      This works, and it does not draw any current, except while measuring.\n
      \n
      However, it’s quite a few parts. So I’m curious if anyone has an idea how to do this with just a single mosfet. It seems to me like it should be possible, but I haven’t figured out how.\n
      \n
      Oh, and if I’m doing something stupid here, please tell me :)
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 11
    +favouriteCount: 17
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1694781042 {#1718
      date: 2023-09-15 14:30:42.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1564 …}
    +votes: Doctrine\ORM\PersistentCollection {#1565 …}
    +reports: Doctrine\ORM\PersistentCollection {#1567 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1883 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1874 …}
    +badges: Doctrine\ORM\PersistentCollection {#1405 …}
    +children: [
      1 => App\Entity\EntryComment {#1614
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1578 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
        +image: null
        +parent: null
        +root: null
        +body: """
          You could use a single MOSFET on the high side of the divider and use a cap + diode to boost the voltage and fully turn on the FET:\n
          \n
          ![](https://lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)\n
          \n
          My gate driver is fairly crude but you could probably make something a bit better with a PNP transistor and either pull it down or leave it floating, or instead use a szaiklai pair
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 2
        +score: 0
        +lastActive: DateTime @1693038333 {#1435
          date: 2023-08-26 10:25:33.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@nilclass@discuss.tchncs.de"
        ]
        +children: Doctrine\ORM\PersistentCollection {#1574 …}
        +nested: Doctrine\ORM\PersistentCollection {#1588 …}
        +votes: Doctrine\ORM\PersistentCollection {#1584 …}
        +reports: Doctrine\ORM\PersistentCollection {#1580 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1585 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1654 …}
        -id: 26785
        -bodyTs: "'/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':31 'better':46 'bit':45 'boost':20 'cap':17 'could':2,40 'crude':37 'diod':18 'divid':13 'driver':34 'either':52 'fair':36 'fet':28 'float':59 'fulli':24 'gate':33 'high':9 'instead':61 'leav':57 'lemmy.ca':30 'lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':29 'make':42 'mosfet':6 'pair':65 'pnp':49 'probabl':41 'pull':53 'side':10 'singl':5 'someth':43 'szaiklai':64 'transistor':50 'turn':25 'use':3,15,62 'voltag':22"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.ca/comment/2548436"
        +editedAt: DateTimeImmutable @1692962277 {#1438
          date: 2023-08-25 13:17:57.0 +02:00
        }
        +createdAt: DateTimeImmutable @1692962079 {#1431
          date: 2023-08-25 13:14:39.0 +02:00
        }
        +"title": 26785
      }
      0 => App\Entity\EntryComment {#1525}
    ]
    -id: 1944
    -titleTs: "'batteri':5 'circuit':7 'improv':3 'measur':6"
    -bodyTs: "'/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':152 '/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':188 '/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':53 '1.1':69,77 '10':107 '100µa':127 '10kω':88 '5v':5 '9v':12 'abl':73 'ad':178 'adc':85,95,165 'add':137 'address':173 'analog':99 'anyon':213 'approxim':106 'arduino':7 'atmega':83,91 'atmega328p':9 'bad':156 'batteri':28,130,170 'block':13 'bother':118 'buck':16 'chosen':56 'circuit':123 'clone':8 'constant':125 'convert':17 'curious':211 'current':197 'datasheet':92 'discuss.tchncs.de':52,151,187 'discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':150 'discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':186 'discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':51 'divid':50,142 'draw':126,195 'except':198 'figur':239 'first':42 'full':38 'get':33 'great':113 'haven':237 'howev':201 'idea':35,43,216 'imped':104 'input':166 'intern':79 'issu':175 'kω':108 'less':110 'let':22 'like':230 'm':210,246 'measur':26,66,149,184,200 'microcontrol':6,24 'mosfet':139,161,181,225 'next':133 'obvious':155 'occasion':25 'oh':242 'optim':97 'output':67,103 'part':207 'path':185 'pleas':251 'possibl':234 'power':3 'quit':204 'r1':86 'r2':87 'refer':80 'resistor':58 'say':93 'second':180 'see':167 'seem':227 'signal':100 'simpl':48 'sinc':89 'singl':224 'someth':248 'stupid':249 'switch':144 'tell':252 'thought':134 'use':10,46,75 'v':70,78 'valu':59 've':55,177 'voltag':29,49,63,171 'want':20 'whole':169 'work':190"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1693029637
    +visibility: "visible             "
    +apId: "https://discuss.tchncs.de/post/2309537"
    +editedAt: DateTimeImmutable @1692947232 {#1696
      date: 2023-08-25 09:07:12.0 +02:00
    }
    +createdAt: DateTimeImmutable @1692947137 {#1732
      date: 2023-08-25 09:05:37.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1616 …}
  +root: App\Entity\EntryComment {#1614}
  +body: "It is an N channel FET. The concept is called “bootstrapping” since Vgs needs to be greater than Vth for the MOSFET to be on. When the FET is on the high side and you want the full 9V on the output, you use the diode to charge the capacitor, and the other side of the cap is 0V. Then, when the other side of the cap is connected to 9V, the charge on the cap can’t go anywhere so the voltage on the other side jumps to 18V. This creates a Vgs of 9V. Ideally you would have something better to drive the gate to fully turn off the FET, but I just used a quick and dirty driver where the bootstrap capacitor directly feeds the gate instead of being the input to the driver. Because if this, the Vgs doesn’t drop completely to 0"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1692976324 {#1666
    date: 2023-08-25 17:12:04.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@nilclass@discuss.tchncs.de"
    "@jjagaimo@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1711 …}
  +nested: Doctrine\ORM\PersistentCollection {#1692 …}
  +votes: Doctrine\ORM\PersistentCollection {#1686 …}
  +reports: Doctrine\ORM\PersistentCollection {#1680 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1683 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1702 …}
  -id: 26797
  -bodyTs: "'0':148 '0v':59 '18v':90 '9v':39,71,96 'anywher':80 'better':102 'bootstrap':11,124 'call':10 'cap':57,67,76 'capacitor':50,125 'channel':5 'charg':48,73 'complet':146 'concept':8 'connect':69 'creat':92 'diod':46 'direct':126 'dirti':120 'doesn':143 'drive':104 'driver':121,137 'drop':145 'feed':127 'fet':6,28,112 'full':38 'fulli':108 'gate':106,129 'go':79 'greater':17 'high':32 'ideal':97 'input':134 'instead':130 'jump':88 'mosfet':22 'n':4 'need':14 'output':42 'quick':118 'side':33,54,64,87 'sinc':12 'someth':101 'turn':109 'use':44,116 'vgs':13,94,142 'voltag':83 'vth':19 'want':36 'would':99"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/2554107"
  +editedAt: null
  +createdAt: DateTimeImmutable @1692976324 {#1561
    date: 2023-08-25 17:12:04.0 +02:00
  }
  +"title": 26797
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
11 DENIED edit
App\Entity\EntryComment {#1525
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1578
    +user: Proxies\__CG__\App\Entity\User {#2471 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#2385 …}
    +slug: "How-to-improve-my-battery-measurement-circuit"
    +title: "How to improve my battery measurement circuit?"
    +url: null
    +body: """
      I am powering a 5V microcontroller (arduino clone, atmega328p) using a 9V block and a buck converter. Now I want to let the microcontroller occasionally measure the battery voltage, so I can get an idea of how full it is.\n
      \n
      My first idea was to use a simple voltage divider:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)\n
      \n
      I’ve chosen the resistor values so that:\n
      \n
      - the voltage at the measure output is `< 1.1V`, to be able to use the 1.1V internal reference of the atmega’s ADC\n
      - `R1 || R2 < 10kΩ`, since the atmega datasheet says “The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less”\n
      \n
      This is great and all, but what bothers me is that this circuit will constantly draw ~100µA from the battery.\n
      \n
      So, my next thought was to add a mosfet to the divider, to switch it on only while measuring:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)\n
      \n
      This is obviously bad, because now when the mosfet is off, the ADC input sees the whole battery voltage.\n
      \n
      To address that issue, I’ve added a second mosfet into the measure path:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)\n
      \n
      This works, and it does not draw any current, except while measuring.\n
      \n
      However, it’s quite a few parts. So I’m curious if anyone has an idea how to do this with just a single mosfet. It seems to me like it should be possible, but I haven’t figured out how.\n
      \n
      Oh, and if I’m doing something stupid here, please tell me :)
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 11
    +favouriteCount: 17
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1694781042 {#1718
      date: 2023-09-15 14:30:42.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1564 …}
    +votes: Doctrine\ORM\PersistentCollection {#1565 …}
    +reports: Doctrine\ORM\PersistentCollection {#1567 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1883 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1874 …}
    +badges: Doctrine\ORM\PersistentCollection {#1405 …}
    +children: [
      1 => App\Entity\EntryComment {#1614
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1578 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
        +image: null
        +parent: null
        +root: null
        +body: """
          You could use a single MOSFET on the high side of the divider and use a cap + diode to boost the voltage and fully turn on the FET:\n
          \n
          ![](https://lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)\n
          \n
          My gate driver is fairly crude but you could probably make something a bit better with a PNP transistor and either pull it down or leave it floating, or instead use a szaiklai pair
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 2
        +score: 0
        +lastActive: DateTime @1693038333 {#1435
          date: 2023-08-26 10:25:33.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@nilclass@discuss.tchncs.de"
        ]
        +children: Doctrine\ORM\PersistentCollection {#1574 …}
        +nested: Doctrine\ORM\PersistentCollection {#1588 …}
        +votes: Doctrine\ORM\PersistentCollection {#1584 …}
        +reports: Doctrine\ORM\PersistentCollection {#1580 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1585 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1654 …}
        -id: 26785
        -bodyTs: "'/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':31 'better':46 'bit':45 'boost':20 'cap':17 'could':2,40 'crude':37 'diod':18 'divid':13 'driver':34 'either':52 'fair':36 'fet':28 'float':59 'fulli':24 'gate':33 'high':9 'instead':61 'leav':57 'lemmy.ca':30 'lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':29 'make':42 'mosfet':6 'pair':65 'pnp':49 'probabl':41 'pull':53 'side':10 'singl':5 'someth':43 'szaiklai':64 'transistor':50 'turn':25 'use':3,15,62 'voltag':22"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.ca/comment/2548436"
        +editedAt: DateTimeImmutable @1692962277 {#1438
          date: 2023-08-25 13:17:57.0 +02:00
        }
        +createdAt: DateTimeImmutable @1692962079 {#1431
          date: 2023-08-25 13:14:39.0 +02:00
        }
        +"title": 26785
      }
      0 => App\Entity\EntryComment {#1525}
    ]
    -id: 1944
    -titleTs: "'batteri':5 'circuit':7 'improv':3 'measur':6"
    -bodyTs: "'/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':152 '/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':188 '/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':53 '1.1':69,77 '10':107 '100µa':127 '10kω':88 '5v':5 '9v':12 'abl':73 'ad':178 'adc':85,95,165 'add':137 'address':173 'analog':99 'anyon':213 'approxim':106 'arduino':7 'atmega':83,91 'atmega328p':9 'bad':156 'batteri':28,130,170 'block':13 'bother':118 'buck':16 'chosen':56 'circuit':123 'clone':8 'constant':125 'convert':17 'curious':211 'current':197 'datasheet':92 'discuss.tchncs.de':52,151,187 'discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':150 'discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':186 'discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':51 'divid':50,142 'draw':126,195 'except':198 'figur':239 'first':42 'full':38 'get':33 'great':113 'haven':237 'howev':201 'idea':35,43,216 'imped':104 'input':166 'intern':79 'issu':175 'kω':108 'less':110 'let':22 'like':230 'm':210,246 'measur':26,66,149,184,200 'microcontrol':6,24 'mosfet':139,161,181,225 'next':133 'obvious':155 'occasion':25 'oh':242 'optim':97 'output':67,103 'part':207 'path':185 'pleas':251 'possibl':234 'power':3 'quit':204 'r1':86 'r2':87 'refer':80 'resistor':58 'say':93 'second':180 'see':167 'seem':227 'signal':100 'simpl':48 'sinc':89 'singl':224 'someth':248 'stupid':249 'switch':144 'tell':252 'thought':134 'use':10,46,75 'v':70,78 'valu':59 've':55,177 'voltag':29,49,63,171 'want':20 'whole':169 'work':190"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1693029637
    +visibility: "visible             "
    +apId: "https://discuss.tchncs.de/post/2309537"
    +editedAt: DateTimeImmutable @1692947232 {#1696
      date: 2023-08-25 09:07:12.0 +02:00
    }
    +createdAt: DateTimeImmutable @1692947137 {#1732
      date: 2023-08-25 09:05:37.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1616 …}
  +root: App\Entity\EntryComment {#1614}
  +body: "It is an N channel FET. The concept is called “bootstrapping” since Vgs needs to be greater than Vth for the MOSFET to be on. When the FET is on the high side and you want the full 9V on the output, you use the diode to charge the capacitor, and the other side of the cap is 0V. Then, when the other side of the cap is connected to 9V, the charge on the cap can’t go anywhere so the voltage on the other side jumps to 18V. This creates a Vgs of 9V. Ideally you would have something better to drive the gate to fully turn off the FET, but I just used a quick and dirty driver where the bootstrap capacitor directly feeds the gate instead of being the input to the driver. Because if this, the Vgs doesn’t drop completely to 0"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1692976324 {#1666
    date: 2023-08-25 17:12:04.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@nilclass@discuss.tchncs.de"
    "@jjagaimo@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1711 …}
  +nested: Doctrine\ORM\PersistentCollection {#1692 …}
  +votes: Doctrine\ORM\PersistentCollection {#1686 …}
  +reports: Doctrine\ORM\PersistentCollection {#1680 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1683 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1702 …}
  -id: 26797
  -bodyTs: "'0':148 '0v':59 '18v':90 '9v':39,71,96 'anywher':80 'better':102 'bootstrap':11,124 'call':10 'cap':57,67,76 'capacitor':50,125 'channel':5 'charg':48,73 'complet':146 'concept':8 'connect':69 'creat':92 'diod':46 'direct':126 'dirti':120 'doesn':143 'drive':104 'driver':121,137 'drop':145 'feed':127 'fet':6,28,112 'full':38 'fulli':108 'gate':106,129 'go':79 'greater':17 'high':32 'ideal':97 'input':134 'instead':130 'jump':88 'mosfet':22 'n':4 'need':14 'output':42 'quick':118 'side':33,54,64,87 'sinc':12 'someth':101 'turn':109 'use':44,116 'vgs':13,94,142 'voltag':83 'vth':19 'want':36 'would':99"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/2554107"
  +editedAt: null
  +createdAt: DateTimeImmutable @1692976324 {#1561
    date: 2023-08-25 17:12:04.0 +02:00
  }
  +"title": 26797
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
12 DENIED moderate
App\Entity\EntryComment {#1525
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1578
    +user: Proxies\__CG__\App\Entity\User {#2471 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#2385 …}
    +slug: "How-to-improve-my-battery-measurement-circuit"
    +title: "How to improve my battery measurement circuit?"
    +url: null
    +body: """
      I am powering a 5V microcontroller (arduino clone, atmega328p) using a 9V block and a buck converter. Now I want to let the microcontroller occasionally measure the battery voltage, so I can get an idea of how full it is.\n
      \n
      My first idea was to use a simple voltage divider:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)\n
      \n
      I’ve chosen the resistor values so that:\n
      \n
      - the voltage at the measure output is `< 1.1V`, to be able to use the 1.1V internal reference of the atmega’s ADC\n
      - `R1 || R2 < 10kΩ`, since the atmega datasheet says “The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less”\n
      \n
      This is great and all, but what bothers me is that this circuit will constantly draw ~100µA from the battery.\n
      \n
      So, my next thought was to add a mosfet to the divider, to switch it on only while measuring:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)\n
      \n
      This is obviously bad, because now when the mosfet is off, the ADC input sees the whole battery voltage.\n
      \n
      To address that issue, I’ve added a second mosfet into the measure path:\n
      \n
      ![](https://discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)\n
      \n
      This works, and it does not draw any current, except while measuring.\n
      \n
      However, it’s quite a few parts. So I’m curious if anyone has an idea how to do this with just a single mosfet. It seems to me like it should be possible, but I haven’t figured out how.\n
      \n
      Oh, and if I’m doing something stupid here, please tell me :)
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 11
    +favouriteCount: 17
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1694781042 {#1718
      date: 2023-09-15 14:30:42.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1564 …}
    +votes: Doctrine\ORM\PersistentCollection {#1565 …}
    +reports: Doctrine\ORM\PersistentCollection {#1567 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1883 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1874 …}
    +badges: Doctrine\ORM\PersistentCollection {#1405 …}
    +children: [
      1 => App\Entity\EntryComment {#1614
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1578 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
        +image: null
        +parent: null
        +root: null
        +body: """
          You could use a single MOSFET on the high side of the divider and use a cap + diode to boost the voltage and fully turn on the FET:\n
          \n
          ![](https://lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)\n
          \n
          My gate driver is fairly crude but you could probably make something a bit better with a PNP transistor and either pull it down or leave it floating, or instead use a szaiklai pair
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 2
        +score: 0
        +lastActive: DateTime @1693038333 {#1435
          date: 2023-08-26 10:25:33.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@nilclass@discuss.tchncs.de"
        ]
        +children: Doctrine\ORM\PersistentCollection {#1574 …}
        +nested: Doctrine\ORM\PersistentCollection {#1588 …}
        +votes: Doctrine\ORM\PersistentCollection {#1584 …}
        +reports: Doctrine\ORM\PersistentCollection {#1580 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1585 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1654 …}
        -id: 26785
        -bodyTs: "'/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':31 'better':46 'bit':45 'boost':20 'cap':17 'could':2,40 'crude':37 'diod':18 'divid':13 'driver':34 'either':52 'fair':36 'fet':28 'float':59 'fulli':24 'gate':33 'high':9 'instead':61 'leav':57 'lemmy.ca':30 'lemmy.ca/pictrs/image/8b22113e-3ad3-40c1-80ee-e7b3e6be24cb.png)':29 'make':42 'mosfet':6 'pair':65 'pnp':49 'probabl':41 'pull':53 'side':10 'singl':5 'someth':43 'szaiklai':64 'transistor':50 'turn':25 'use':3,15,62 'voltag':22"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.ca/comment/2548436"
        +editedAt: DateTimeImmutable @1692962277 {#1438
          date: 2023-08-25 13:17:57.0 +02:00
        }
        +createdAt: DateTimeImmutable @1692962079 {#1431
          date: 2023-08-25 13:14:39.0 +02:00
        }
        +"title": 26785
      }
      0 => App\Entity\EntryComment {#1525}
    ]
    -id: 1944
    -titleTs: "'batteri':5 'circuit':7 'improv':3 'measur':6"
    -bodyTs: "'/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':152 '/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':188 '/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':53 '1.1':69,77 '10':107 '100µa':127 '10kω':88 '5v':5 '9v':12 'abl':73 'ad':178 'adc':85,95,165 'add':137 'address':173 'analog':99 'anyon':213 'approxim':106 'arduino':7 'atmega':83,91 'atmega328p':9 'bad':156 'batteri':28,130,170 'block':13 'bother':118 'buck':16 'chosen':56 'circuit':123 'clone':8 'constant':125 'convert':17 'curious':211 'current':197 'datasheet':92 'discuss.tchncs.de':52,151,187 'discuss.tchncs.de/pictrs/image/450dc371-58d0-4eb0-8f3b-4e76bf676bf4.png)':150 'discuss.tchncs.de/pictrs/image/970e3840-fcbb-46dd-92fb-8903b89149a0.png)':186 'discuss.tchncs.de/pictrs/image/9d173f1d-8412-4129-8ae1-c549a7895107.png)':51 'divid':50,142 'draw':126,195 'except':198 'figur':239 'first':42 'full':38 'get':33 'great':113 'haven':237 'howev':201 'idea':35,43,216 'imped':104 'input':166 'intern':79 'issu':175 'kω':108 'less':110 'let':22 'like':230 'm':210,246 'measur':26,66,149,184,200 'microcontrol':6,24 'mosfet':139,161,181,225 'next':133 'obvious':155 'occasion':25 'oh':242 'optim':97 'output':67,103 'part':207 'path':185 'pleas':251 'possibl':234 'power':3 'quit':204 'r1':86 'r2':87 'refer':80 'resistor':58 'say':93 'second':180 'see':167 'seem':227 'signal':100 'simpl':48 'sinc':89 'singl':224 'someth':248 'stupid':249 'switch':144 'tell':252 'thought':134 'use':10,46,75 'v':70,78 'valu':59 've':55,177 'voltag':29,49,63,171 'want':20 'whole':169 'work':190"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1693029637
    +visibility: "visible             "
    +apId: "https://discuss.tchncs.de/post/2309537"
    +editedAt: DateTimeImmutable @1692947232 {#1696
      date: 2023-08-25 09:07:12.0 +02:00
    }
    +createdAt: DateTimeImmutable @1692947137 {#1732
      date: 2023-08-25 09:05:37.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1575 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1616 …}
  +root: App\Entity\EntryComment {#1614}
  +body: "It is an N channel FET. The concept is called “bootstrapping” since Vgs needs to be greater than Vth for the MOSFET to be on. When the FET is on the high side and you want the full 9V on the output, you use the diode to charge the capacitor, and the other side of the cap is 0V. Then, when the other side of the cap is connected to 9V, the charge on the cap can’t go anywhere so the voltage on the other side jumps to 18V. This creates a Vgs of 9V. Ideally you would have something better to drive the gate to fully turn off the FET, but I just used a quick and dirty driver where the bootstrap capacitor directly feeds the gate instead of being the input to the driver. Because if this, the Vgs doesn’t drop completely to 0"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1692976324 {#1666
    date: 2023-08-25 17:12:04.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@nilclass@discuss.tchncs.de"
    "@jjagaimo@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1711 …}
  +nested: Doctrine\ORM\PersistentCollection {#1692 …}
  +votes: Doctrine\ORM\PersistentCollection {#1686 …}
  +reports: Doctrine\ORM\PersistentCollection {#1680 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1683 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1702 …}
  -id: 26797
  -bodyTs: "'0':148 '0v':59 '18v':90 '9v':39,71,96 'anywher':80 'better':102 'bootstrap':11,124 'call':10 'cap':57,67,76 'capacitor':50,125 'channel':5 'charg':48,73 'complet':146 'concept':8 'connect':69 'creat':92 'diod':46 'direct':126 'dirti':120 'doesn':143 'drive':104 'driver':121,137 'drop':145 'feed':127 'fet':6,28,112 'full':38 'fulli':108 'gate':106,129 'go':79 'greater':17 'high':32 'ideal':97 'input':134 'instead':130 'jump':88 'mosfet':22 'n':4 'need':14 'output':42 'quick':118 'side':33,54,64,87 'sinc':12 'someth':101 'turn':109 'use':44,116 'vgs':13,94,142 'voltag':83 'vth':19 'want':36 'would':99"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/2554107"
  +editedAt: null
  +createdAt: DateTimeImmutable @1692976324 {#1561
    date: 2023-08-25 17:12:04.0 +02:00
  }
  +"title": 26797
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
13 DENIED ROLE_ADMIN
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
14 DENIED ROLE_MODERATOR
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details