Everyday practical home automation projects
Made with open source hardware and software
๐ถ ๐ ๐ ๐งบ ๐ ๐ ๐ฆ ๐ ๐ช ๐ก ๐ก
Visit hutscape.com.
๐ฒ Indoor Infrared receiver and transmitter with temperature sensor ๐
Home Page: https://hutscape.com/pine
License: MIT License
Everyday practical home automation projects
Made with open source hardware and software
๐ถ ๐ ๐ ๐งบ ๐ ๐ ๐ฆ ๐ ๐ช ๐ก ๐ก
Visit hutscape.com.
on the soldered PCB
Remove D2 and reverse Q1. I use the circuit below. P1 is the battery, +5V is from USB
~ source ๐ Thanks Baoshi
30V 2A 430mV @ 2A SOD-123F Schottky Barrier Diodes (SBD) RoHS MBR230LSFT1G
Nexperia 30V 2A, Diode, 2-Pin SOD-123F PMEG3020EH,115
Changes to make:
292
signal length to store variable-length signalsSW1 turns on when the switch is in the downwards position. The silkscreen indicates otherwise.
Little suggestion for your battery level measurements (you probably just didn't need this optimization yet): You can replace the GND with a GPIO that you ground only when you do the measures and set as output otherwise (high impedance).
~ source
from @notthetup
M2
drill holes should be non-plated and non-conductingSW1
and SW2
should be non-platedfrom @catmaker
BATT_EN
to GND
or an FET 75e1301Without download the datasheet of ATSAM, I can observe you're stressing the
PA06
&PA16
(batt
&batt_en
) pins. Despite the limiting the current with100kohms
, you're back-powering the MCU at whatever batt voltage when the CPU is only at 2.8V. That stress can cause strange behavior over time.
In the past, I read in (I think) Energizer AA Alkaline Spec/AppNote that anything less than 50uA loading is better than its self-discharge (kind of like the battery's shelf-life) and is good for off-state of consumer goods. 4.5V / 200000 = 22.5uA, so that's good. But your LDO consumes > 85uA, not the best. The good ones I've used in the past were Microchip MCP1703 (2uA) and OnSemi NCP170 (0.5uA) These little savings can add up to your longer batt life.
If the batt reader is really a drainer, then the solution is a P-MOSFET at the top-arm of your potential divider, but that needs to pull down to turn on, so an inverting transistor logic might be necessary -- additional components
S
and D
for symbol BSH203
6327a1athe symbol for BSH203 looks like source and drain reversed. it's only the letters S & D that are interchanged. for sot23 or other 3-pin smt mosfets, they're pretty much standard. 1,2,3=g,s,d.
JP1 looks redundant when
R11
can do the same
D3
IR LED needs a series resistor 2239f77are you controlling current through D3 IRLED with the transistor in linear region? You need to decouple the rail to the LED too, because it is a pulsating drain on the supply. In the past, we treated that NPN as a switch and control current along the LED. Although more expensive (cents) i will lazily use n-mosfet.
LED current is usually limited(controlled) by a series resistor. You can control an NPN current flow by controlling the base-current, multiplied by NPN's hfe, BUT this is exotic and probably not realizable (due to NPN manufacturing tolerances). So the common way is to treat that NPN as a quick on-off >switch<. So to control current, the series resistor is used.
When batt power is low, and you xmit, the power rail is disturbed and possibly MCU is reset/browned-out prematurely. If you look at other similar circuits, the LED (only) is supplied by Vbatt, before the regulator.
not a huge deal, but this pad doesn't have thermal relief.
GND
or add a FET to the battery measuring circuit 75e1301the battery sense circuit, the Batt_EN is used to 'turn off' the sensing to save power but
Batt_EN
is at2.8V
when high. yourVBAT
is going to be at~3.7V
, and yourBAT_EN
will be at2.8V
. you'll still have a current flow:4.5ยตA
You also have an LED that's always on, maybe that's not mandatory. And it can be nice to double-check that the default state of this "switchable ground" GPIO is set as input by (hardware) default.
~ Source
Thanks @notthetup ๐โโ
SWD
headerA declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.