Advice & Suggestions on LoRa Sensor Node

Hi all, I would appreciate a review of my circuit design & PCB layout please. I have prototyped this successfully on stripboard. The circuit is a designed to be a battery power LoRa sensor node on The Things Network or similar. The battery would be 3xAAA or possibly a small Li-ion/LiPo battery.

The idea is to make it as flexible as possible, but also keep it simple for beginners to solder up and add their own choice of sensors or other circuits on the prototyping/breadboard area, such as analog or i2c temp/humidity sensors for example.

The atmega328 will need to have the Arduino Mini Core bootloader burned onto it before soldering to the board. The mini core allows the pins normally used for the crystal to be used as digital pins 20 & 21, so I made one of those available on the proto area.

So, how would you make this better/more flexible? What issues are beginners likely to encounter?


My first thoughts are that a display would be nice… alas, that is not the best for battery power.
second. even the low(er) power 5110 might be too high a draw.

then the I2C bus be available for sensors. but as I see it, one uses some of the holes for jumpers.
solder pads/ jumpers on the bottom would offer the holes for other things.

Battery charger circuit for solar panel input ?

there is that huge space for something…

I am assuming the footprint is that of a 3AAA battery holder ?
is the shape such that it fits over a 3AAA holder ?

You need to study the MCP1700 data sheet and add the part(s) you have missed.

3 x AAs can be marginal, they will be down to 1.2V halfway through their life and by the time you add the essential reverse polarity diode in the battery connector (its for beginners remember!) the supply voltage is marginal.

Add some 4 pin I2C headers so sensors or an SSD1306 display can easily be added.

Dont forget the I2C pullups.

Add a capability for fitting something like a 220uF electrolytic cap across the regulator output.

Add the pads so that an edge SMA can be fitted for direct connect of an antenna.

Power traces on the PCB should be a lot thicker than they are.

Add a reset switch.

Add a power switch.

Add mount holes.

Hi Dave and thanks for the thoughts. The idea is low power (<50uA during sleep) and any displays would be remote, eg. a Web page or one of the online sensor data services.

Yes, the size is that of a 3xAAA battery holder. That empty space at bottom left could be used for pads to access other pins. Which would you make available there? D21 is currently unused and not accessible.

The i2c and SPI pins are all available at the edge of the breadboard area, plus a selection of analog and digital pins.

Another concern is keeping the height of the PCB low to enable it to fit in small project boxes along with the batteries. Hence the recommendation would be to solder the ATmega directly onto the PCB, and of course the rfm95 module is surface mount rather than using 2mm PCB headers (is that the right decision?). So I might need to make the PROG female header a 90° type flat against the PCB. In that case I will need to move the PROG header up the board.

Thanks srnet, lots of things to think about there.

I know the mcp1700 data sheet recommends 1uF caps on input and output. During my prototyping experiments, I found that removing the input cap did not seem to affect the performance much. Perhaps because I am using batteries connected by a short cable? However, I found the output cap to be very important. Without that, the quiescent current rose up dramatically from the specified 1.8uA to over 1mA! But I also found that 0.1uF worked well. In the PCB layout, I have the atmega's bypass cap close to the Vcc & ground pins of the 28 pin dip and also right next to the regulator, so it acts as the output cap and the bypass cap. Do you think this will be sufficient?

Good point about the reverse polarity protection diode. That's a mistake a beginner is likely to make. But as you point out, adding one will reduce battery life. Not sure what that is likely to be yet with 3xAAA, I am conducting tests with the prototype, but unfortunately the prototype does not have the regulator.

4-pin i2c headers could be added by the user on the breadboard area if required. i2c pull-ups could also be added there if required, but for one or two i2c sensors soldered directly onto the breadboard area, the atmega's internal pull-ups seem to do a good enough job. Many i2c sensor modules include pull-ups as well.

The 220uF cap could be useful for some applications. Again, it could be added on the breadboard area.

The edge connector for the sma antenna is a great idea, I will try to fit one. On the other hand, the signal from my prototype with a wire antenna has been picked up by a TTN base station 11Km away!

The power tracks are 10mil at the moment. (The other tracks are 8mil.) I will try to thicken them further, and also find out the current capacity for typical copper thickness.

The PCB layout picture is not great. I used the "export" function in easyEDA. It does not show everything you can see on screen in the app, for example it does not show the ground planes.

Power and reset switches: I imagined the user would just pop out one of the AAA cells from the holder. If I made the reset pin available on the breadboard area, a reset button could be added there if required.

Mounting holes: I will think about that. Could get away with two in opposite corners. I could sacrifice some of the breadboard area for one of them.

I know the mcp1700 data sheet recommends 1uF caps on input and output. During my prototyping experiments, I found that removing the input cap did not seem to affect the performance much. Perhaps because I am using batteries connected by a short cable?

Its a mistake to ommit a recommend component just because in limited testing you did not notice an issue. You asked for comments about making the board more flexible, to me that means planning for less than optimal power supplies being used.

But I also found that 0.1uF worked well. In the PCB layout, I have the atmega's bypass cap close to the Vcc & ground pins of the 28 pin dip and also right next to the regulator, so it acts as the output cap and the bypass cap. Do you think this will be sufficient?

I guess one cap might be sufficient, but it is again a mistake to ignore the datasheet recommendations and who knows what hardware users are going to connect. So leave space for the recommended 1uF.

Good point about the reverse polarity protection diode. That's a mistake a beginner is likely to make. But as you point out, adding one will reduce battery life.

A diode wont affect battery life much, but it does bring the LDO closer to the point where its not working properly.

The edge connector for the sma antenna is a great idea, I will try to fit one.

You can also put down the pads for a u.fl connector, it does not take up extra board space and increases flexibility.

I have added mounting holes and increased the power tracks to 20mil. I have also added the 2 x 1uF caps for the reg. Still searching the parts libraries for an sma edge-mounted socket combined with a hole for a simple wire antenna.

As for ufl connectors, I really hate those, having dealt, frequently unsuccessfully, with soldering those little b**tards. Certainly would not recommend a beginner to try that!



I don't like the way easyEDA had routed tracks right next to the bottom left mounting hole. They could be damaged or shorted by screw. But the does not seem to be a clearance setting...