RFM69HW temp-humidity node
-
Thanks, I just ordered Hakko 0.2mm (curved) and 0.5mm (straight conical) tips from amazon. Both got good reviews. Hopefully one of them is a good match for the task, but if not, it's good to know that 0.8mm will do the business.
-
I received the board from post #1 in the mail today. I'm planning to mount the atmega328p DIP chip using machine pin female headers. It certainly can do that, but I'm thinking that on the next iteratioin it might be preferable to have the entire machine pin--not just the thinner leader part--go through the PCB, because then the plastic part of the header can be flush with the PCB (as would be the case if more typical female headers were used). Anyone tried doing that? Any reason not to do that?
-
So, to clarify, what I mean by a female machine pin header (also known as a Swiss machine pin header) is this:

Unfortunately, the only dimensioning I've been able to find is this:

which lacks the dimension I want to know, which is diameter of the larger pin body that's just above the 0.51mm diameter part of the leader pin that's meant to be pushed through the through-hole.Purely eyeballing it, it looks like it's maybe, what, twice as wide? Anyone happen to know what that dimension is?
-
I've one of these at home. I could take a measurement, but maybe someone has a better idea. ☺
-
1.35 Millimeters!
-
@TimO
Thanks! That exactly matches what my micrometer says also, so I'll go with that.So now the question is: what diameter hole should I have drilled for that? Is there a rule of thumb? e.g. Would 1.45 be too snug? Too loose?
To keep things rolling I just sent in to be fabricated a test board with 1.45mm holes . It cost just 30 cents. If anyone has an idea for a better diameter to try, let me know and I'll send in one of those as well.

-
I assembled the FTDI adapter board yesterday. I should have spaced the pads further apart on the switch (well, at least for the switch I'm using) and also on the through-hole resistors. Anyhow, I only need one, so I don't think I'll be updating it.
-
I assembled the first node from post #1 today, but it didn't work. Upon investigation, I found that one of the required traces was not there! I had generated the trace layout using diptraces auto-router, and it didn't indicate a failure. Most likely I over-constrained the problem by making the PCB board size smaller than I should have. However, if I had known that the auto-routing had failed, I could have relaxed that enough for it to succeed.
-
So, I was able to make the board work by soldering on a single "oops" wire to compensate for the missing trace. I guess I'll be redoing this board so that's not required on future builds. The FTDI adapter board also had an oops that I fixed without much difficulty. Using the adapter board I've verified I can upload new sketches to the node from post #1. The reset button also works as intended. So, the adapter board feasibility is now proven.
-
I took a shot at soldering the smaller board with the much tinier atmega328p, but for now I've concluded that hand soldering such a small chip is simply more work than it's worth. Perhaps with a reflow oven....
I'm still waiting for the interstitial board to arrive.
-
Soldering an atmega328 smt is easy:
https://www.youtube.com/watch?v=UeCZ9AMG3Vo
according to that guy, anyway. Maybe the longer pads makes it so? -
I took a shot at soldering the smaller board with the much tinier atmega328p, but for now I've concluded that hand soldering such a small chip is simply more work than it's worth. Perhaps with a reflow oven....
I'm still waiting for the interstitial board to arrive.
This has a lot of detail about soldering the atmega328 surface mount:
https://www.youtube.com/watch?v=-yc3zEe0RA0
So, though it's obviously doable, I still wouldn't say it's "easy." -
This has a lot of detail about soldering the atmega328 surface mount:
https://www.youtube.com/watch?v=-yc3zEe0RA0
So, though it's obviously doable, I still wouldn't say it's "easy."I finally had success using the Dave Jones tack and reflow method. The hardest part is just ensuring that the chip is properly aligned after the tack. From that point on, iit goes relatively easy.
-
So, LED is blinking like it should, and I can download sketches to it. I plugged in an si7021 board, and that's working too:
Humidity: 44.42 Temperature: 22.22
Humidity: 44.40 Temperature: 22.22
Humidity: 44.43 Temperature: 22.23
Humidity: 44.42 Temperature: 22.22
Humidity: 44.43 Temperature: 22.21
Humidity: 44.43 Temperature: 22.22
Humidity: 44.44 Temperature: 22.22Looks as though a BME280 board, which has the same pinout as the si7021 board, should work also.

I tried the adafruit library on such a BME280, but it says it can't find the sensor. So, I tried the sparkfun library instead, and it is outputing false information:Temperature: 0.00 degrees C
Temperature: 32.00 degrees F
Pressure: 0.00 Pa
Altitude: 45846.20m
Altitude: 150414.04ft
%RH: 0.00 %Looking at the back of the BME280 board , it looks like it may have a voltage regulator and/or level converter on it (?)..

Since I'm feeding it 3.3v, not 5v, then perhaps that's the problem.The part is 662K, and sure enough, it's a voltage regulator:

If I remove that and short Vin to the 3v3 lead, maybe it will work....
So, to see if it works at all, I hooked up the BME280 board to an arduino uno at 5v, and... still no joy. Apparently, I received a defective BME280. :disappointed: Murphy's Law strikes again. Therefore, I'll exchange it for another one. Meanwhile, I'll use the si7021.
-
Hello, I had a problem with BME280 too. Both Adafruit and Sparkfun use 0x77 as default address, but I have the same breakout board than you and the i2c address is 0x76.
Voltage regulator is not a problem it's a XC6206 and it's drawing close to nothing when you feed it with low voltage, and for battery voltage (3v down to 2V) the drop out voltage should be around 0.1V.You can pass the address of the sensor in the begin method, it defaults to the one defined in the h file which is 0x77
#define BME280_ADDRESS (0x77) bool begin(uint8_t addr = BME280_ADDRESS);(I use the sparkfun library at the moment as it's easier to set the running mode of the sensor to switch it to sleep mode after measurement. Else it's using too much power for battery operation)
-
I also just now designed this pro mini interstitial board and sent it off to be fabbed:

Just attach an RFM69HW and the si7021 to the board, and then plug it into a pro mini. Voila! You now have a temp-RH node. You will have to remove the LED from pin 13 on the pro mini, but that's no big deal. Also, it's obviously intended for a 3.3V pro mini, not a 5V pro mini.I suspect that for most people, this would be the simplest to put together. The board is less than 1 square inch in area.
@NeverDie
Nice. Could you please open your design? -> www.openhardware.io -
Hello, I had a problem with BME280 too. Both Adafruit and Sparkfun use 0x77 as default address, but I have the same breakout board than you and the i2c address is 0x76.
Voltage regulator is not a problem it's a XC6206 and it's drawing close to nothing when you feed it with low voltage, and for battery voltage (3v down to 2V) the drop out voltage should be around 0.1V.You can pass the address of the sensor in the begin method, it defaults to the one defined in the h file which is 0x77
#define BME280_ADDRESS (0x77) bool begin(uint8_t addr = BME280_ADDRESS);(I use the sparkfun library at the moment as it's easier to set the running mode of the sensor to switch it to sleep mode after measurement. Else it's using too much power for battery operation)
@Nca78
Thank you! I changed the I2C address to 0x76, and now I get the correct readings (in this case, using Sparkfun library):Temperature: 22.77 degrees C
Temperature: 73.00 degrees F
Pressure: 99002.00 Pa
Altitude: 202.13m
Altitude: 663.15ft
%RH: 47.00 %Fantastic! It works after all. Thank you again.
-
@Nca78
Thank you! I changed the I2C address to 0x76, and now I get the correct readings (in this case, using Sparkfun library):Temperature: 22.77 degrees C
Temperature: 73.00 degrees F
Pressure: 99002.00 Pa
Altitude: 202.13m
Altitude: 663.15ft
%RH: 47.00 %Fantastic! It works after all. Thank you again.
I designed the miniature board in the earlier post for the temp-RH sensor to hover over the atmega328p.

Maybe it doesn't matter all that much, but after assembling one that way, I'm realizing it would be better to have it hover over the radio instead because the radio antenna means that the radio side is more likely to be facing up and the atmega328p is flat enough that it can be sat upon on the bottom with the radio on top without complaint. As it stands, the temp-RH sensor could still be installed on the radio side of the PCB, but it would be facing outward (resulting in a larger footprint) rather than inward, hovering over the radio. Since the point of this node is to be small, the status quo somewhat defeats the purpose. So, I'll likely be revising the PCB layout to make that change. Also, I'll be eliminating those RFM69 pads that don't actually need to be soldered, as that will reduce that soldering/assembly time. -
Here's the node from post #1 fully assembled, and with a BME280 instead of an si7021:

I'm starting to toy with the idea of having the radio also be a detachable module. The BME280 is the most expensive part on the board, and it's detachable. The atmega328p is detachable. If the radio were also detachable, it might speed up the assembly and test process. Also, if the radio were to go bad for some reason, one could just pop in a new one. Modularizing like that might make the whole thing easier to repair and troubleshoot, because you could always swap in "known good" modules to see if it fixes a particular problem. Anyhow, just an idea I'm kicking around. What do you all think? Make it more modular, or keep as is?