Damm I am trying to get this working with a Arduino pro mini ,,but no luck wanted to use it in the car ..
How do you wire the NRF24L01+ ???
N-Channel Mosfet s ??? model number please any help much appreciated
I have tried mosfets >>>irf510n
@bisschopsr I now have the schematics posted for all of my boards. I also posted another board for my in-wall scene controller line. Is there any other pics or information that you think might be useful to others for any of these boards?
Hello Tilman, this is really a very nice design. I have ordered a pack of PCBs from elecrow, based on your gerber files, and have a few questions:
in your BOM you have listed 5 smd-capacitors and 7 smd resistors, but on the PCB i have solderpads for 6 capacitors and 8 resistors. Can you just explain?
is there a uniflächentaster-model for 2 ways?
i think i have to flash the bootloader first, do you have a tutorial for this, and a sample-sketch for the board?
Thank you very much
I have success!
(oops, that's suppose to be Timer1)
I only sample for 1/60 of a second. What I did was to back up all the timer registered I used and then resorted them after I was done sampling. (As opposed to initializing the registers in setup and then starting the timer when needed.)
Now I have a Nano sampling the data and sending it to a MySensors Gateway on an RPi3B+ which then sends it to an MQTT broker runing on an old laptop. Also running on the laptop is Home Assistant running inside of VirtualBox.
If MySensors does use Timer1, it appears that restoring the registers allows it to be shared.
//------------------------------------------------------ISR
ISR(TIMER1_OVF_vect){ // interrupt service routine for overflow
TCNT1 = TimerPreloadValue; // must be first line! starts the timer counting again
digitalWrite(TRIGGER_START_SAMPLE_PIN,HIGH);
samplesVolts[--sample]=analogRead(VOLTS_IN_PIN); // decrement before capturing
samplesCurrent[sample]=analogRead(CURRENT_IN_PIN);
digitalWrite(TRIGGER_START_SAMPLE_PIN,LOW);
if (!sample){ // count down to zero
digitalWrite(TRIGGER_START_SAMPLE_PERIOD_PIN,LOW); // indicate that sampling is complete
samplingEnd = micros();
TCCR1B &= 248; // turns off timer
}
}
//------------------------------------------------------sampleOneCycle
void sampleOneCycle(){
// back up timer registers
uint8_t TCNT1_b = TCNT1;
uint8_t TCCR1B_b = TCCR1B;
uint8_t TCCR1A_b = TCCR1A;
uint8_t TIMSK1_b = TIMSK1;
// configure timer which starts the sampling
noInterrupts(); // disable all interrupts
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = TimerPreloadValue; // preload timer
//TCCR1B |= (1 << CS10)|(1 << CS12); // 1024 prescaler
TCCR1B &= 248; // turns off timer?
TIMSK1 |= (1 << TOIE1); // enable timer overflow interrupt ISR
// demark sampling
sample = NUMBER_OF_SAMPLES; // count down to zero
digitalWrite(TRIGGER_START_SAMPLE_PERIOD_PIN,HIGH);
samplingStart = micros();
TCNT1 = 65535; // first trigger right away!
TCCR1B |= 1; // turns on timer
interrupts(); // enable all interrupts
// wait for sampling to be complete
while(digitalRead(TRIGGER_START_SAMPLE_PERIOD_PIN)){};
samplingEnd = micros();
// restore timer registers
TCNT1 = TCNT1_b;
TCCR1B = TCCR1B_b;
TCCR1A = TCCR1A_b;
TIMSK1 = TIMSK1_b;
}
Hi @chey, no, with the pro minis and MySensors lib I couldn't get less.
Didn't measure with yet another multimeter though...
My battery sensors are working now for about a year and the battery levels are between 65% and 70%.
The sensor furthest from the gateway is at 65% and the 3 others at 70%.
Not bad I think.
https://forum.mysensors.org/topic/11499/checking-mechanical-locked-doors-by-a-battery-based-windows-door-sensor-node
Very useful topic for me, thanks. Even though it's been a long time, the information was useful to me. And especially the information on the link you sent.
@yveaux said in Ikea Molgan Hack:
@magpern the instructions on openhardware.io state that the Molgan must be battery powered while programming:
Well, then I can confirm that you don't have to power the Molgan from batteries just for programming. Burning the bootloader works fine with just power from the ISP port and programming it through FTDI works fine if power comes from the FTDI.
What I found wierd is that the atmega328 had power, the radio had power, it wrote debug messages to the FTDI - when powered through the FTDI, it send radio messages etc, but it just did not receive messages.
Messages where not received until I supplied power to the + / - pads (battery pads).
I did read the instructions on openhardware.io, but I didn't follow then to the t.
Hello,
I'm thinking about upgrading this board to include pinout for LIS3DH breakout board, like this one :
https://www.aliexpress.com/item/LIS3DH-Three-Converters-Motion-Accelerometer-Triaxial-Acceleration-Temperature-Sensor-Module-Development-Board-Replace-ADXL345/32840326778.html
and ditch the ADXL shield as it's not a good solution, it has either the ADXL345 which uses too much power, or the ADXL362 which is ultra low power but lacks advanced functionality like tap/double tap detection.
I would like to have feedback of users on this (do it sound useful ?), and also know if anyone uses the SMD footprints on the board, for leds and for reserve capacitors, as it could be a cleaner board without those footprints.
I would make the following changes :
put footprint for LIS3DH accelerometer along the "NModule connector" as it has too many pins to put elsewhere
keep only one I2C footprint on the side, for "GY-49" MAX44009 light sensor breakout board: https://www.aliexpress.com/item/GY-49-MAX44009-Ambient-Light-Sensor-Module-for-Arduino-with-4P-Pin-Header-Module/32828654450.html
temperature/humidity would be via the existing "SMD" footprint, it's not through hole but very easy to solder as it's 2.54mm pad spacing
remove SMD footprints for LED, add footprint for through hole reserve capacitor, keep SMD footprints for reserve capacitors only if I have space for them
shield would be a bit extended to go over the 2 M2 holes in the "power" part of the NModule, so it could be fitted with spacers and nylon screws and have stable/reliable mechanical connection between NModule and Shield. Basically this would be the footprint of the shield :
So in the end it would make one shield to have Temperature/Humidity/Light/Acceleration or Temperature/Humidity/Light/Door.