My first own TTN node with self designed PCB

I recently designed a PCB (my first one) that has the components that are important to me.

TTN Arduino LowPower Solar Node


  • Cheap (about 15 €)
  • Small (88x21x32mm)
  • Expandable (Arduino Pins)
  • low energy consumption
  • Long battery life (2 years without solar)
  • even longer by solar
  • rechargeable by microUSB
  • Slot for BME280 and other I2C
  • Voltage measurement of the battery


You can find a link list below!

  • Arduino Pro mini 3.3V without LED, without regulator (5uA)
  • RF95W (1.5uA)
  • MCP1700-330 LDO (1.6uA, 250mAh max, 2.3-6V input)
  • NCR18650B (3200mA LiPo 4.2V charge, 3.0V cut)
  • TP4056 charger with protection for LiPo (4.2-7V input)
  • Diode for solar module (TP4056 works very well with 5V / 6V solar cells)
  • Resistors, capacitor for measuring the battery voltage at A0 and 1.1V reference
  • Plug’n Play slot for BME280 (temperature, humidity, air pressure over I2C)
  • SMA antenna connector or wire e.g. helical

Price for the components from aliexpress about 15€. PCBs from China cost approximately 1€/piece.

Battery Life:

When it comes to calculating the battery life, it quickly gets complicated. So there are different ways to get to the term:

  • One possibility would be to operate a battery of known capacity until it is empty
  • Another possibility is to study the data sheets of all components and then add all the information
  • The last option would be to measure consumption:
  • Doing this could put a multimeter between source and consumer and measure mA / μA.
  • Or you put a stunt between the battery and the load and measure the voltage drop across the resistor with an oscilloscope.

The easiest option is certainly to run the battery dead. The fastest way is to use the multimeter and the cleanest way is to use the oscilloscope as it gives us a nice curve in the consumption. If we then calculate the integral of this function, we have the consumption of a consignment. Very beautiful!

Which Battery:

The battery I use is a 18650. This number does not describe the type of battery, but the shape. So a 14500 is in the same shape as an “AA”. A 18650 is thicker and longer, but also has significantly more capacity. I take a LiPo, it is charged to 4.2V and can discharge to 2.5V and it is well around 3.3V of the Arduino. A 14500 as LiPo has up to 900mAh. An 18650 already has 3200mAh. My PCB has about the hight and the length of a 18650, so I like to use the battery, which does not cost much space, but has about three times the capacity. Cost of such a cell is about 6 €. LiPo’s have 5% self-discharge. More on that later!


The Arduino consumes only 5uA without LED and regulator. The RF95W only 1.5uA, the regulator I’ve chosen consumes only 1.6uA. So we come to 8.1uA. The resistors for voltage measurement also consume a bit and the BME280 too. So I expect 10uA equals 0.01mA.

If we take only the capacity of the battery and not the self-discharge, then the bill is easy:

3200mA / 0.01mAh = 320.000h = 36 years!!

I think everyone knows that’s unrealistic. The reason is the self-discharge. We do not recalculate for each month, but go from 100% absolute, so the battery will empty in about 2 years. As you can see, the electronics are very economical and efficient.

How can we counteract as self-discharge?

Right, by charging: >5% per month. That should not be a problem for a small solar cell. The built-in charger can operate from 4V to 7V, which is why I would always use a 6V solar cell. There are very cheap with 0.5W. The calculation will follow later on this blog, so subscribe 😉

Simple Test:

As many certainly noticed, I only calculated the deep sleep. Of course that is not possible. Unfortunately, because I have no resistors in the desired sizes, so that I can perform a clean measurement with the oscilloscope, I simply tested. One node has sent 6 bytes per minute. SF7 in ABP. After 48h, the voltage dropped from 4.15V to 4.07V. This waste corresponds to about 2%. At this time, the node sent 3,000 times. A simple calculation lets me come to 150,000 times of sending, nice.

You quickly realize that the standby consumption is not the problem. The sending, as well as the self-discharge is much more important.

Example application:

If we want to measure the temperature every 3 hours, we get 8 per day. If we divide the theoretical 150,000 by 8 per day, we get 50 years. As we saw in the beginning, we come to 36 years of standby. So both no problem. But self-discharge. Two years are already very good, but for me not good enough.


I have already recognized a few errors after ordering the boards. However, only minor ones.
The recording for the battery holder has unfortunately no Blanken contacts, so that the soldering is not possible. Scraping the paint is too messy, so I put a bit of cable from + and – the battery to the input of the TP4056 on the back. As a result, everything must be glued anyway, I see no problem.
Furthermore, I forgot to put a line of the RF95W to the Arduino. Reset to the D9 of the Arduino. In my previous tests I did not need a reset function of the radio. However, he always has power through the battery and this gives problems when rebooting the Arduino.
And a little mistake while labeling. The values for the resistors are wrong. I wrote 1M and 4k7, but it has to be 2M and 470K.


  • correct mistakes
  • Instead of a fixed slot for the battery holder, I will put at several points solder points, so that even small batteries can be glued
  • I will enlarge the board slightly. A few millimeters per side. So I could not design a suitable 3D housing, where I could have screwed the board
  • screw connection for possible daughter boards
  • and whatever else comes to mind, or you!


You quickly realize that the only enemy is the self-discharge, especially while extreme temperatures. Therefore, it should be sufficient to install a small 6V solar cell, so that the battery always remains full, or you just replace the battery every 1-2 years. Alternatively, 3xAA(A) pack can be connected, but it has only 30% of that much mAh!

I think that is a very good basis for a lot of DIY projects. I ordered 30 of these boards and will also provide 20 of them for others to test. The cost of the PCB, shipping and a few beers would be incurred for you. I think at 8€ for a board and 5€ for each further it is fair for all 😉

If you like, make a comment, like, share and subscribe this blog 😉

I look forward to your impressions!

Affiliate links:

If you order through any of the following AliExpress links, I get about 8% commission 😉

10pcs MCP1700T-3302 Product – Arduino Pro mini 3.3V Product – RFM95 Product – 10pcs MCP1700T-3302 SOT-23 Product – NCR18650B Product – TP4056 Charging Board Product – 100PCS Diode 1N4148 Product – 100pcs 2M Ohm Product – 100PCS 1/4W 470K Ohm Product – BME280 Product – 10Pcs 1.6mm SMA Female Jack Product – Battery Holder

helical from eBay


39 thoughts on “My first own TTN node with self designed PCB”

    1. The price refers only to the board. If you’re missing resistors or diodes or other trivialities, that’s not a problem to settle 😉 I do not have enough material here to sell complete sets. 8€ for a PCB is therefore to cover my costs and the time a bit and especially to order new PCBs and above all to be able to design! I hope I can soon offer everything on tindie 😉

      1. Hi Mario
        Nice work and website. Will you please share your PCB design? I want to make a PCB with the same base components, but with many additional items for the four analog instruments I am using, screw terminals, etc. I think your design work would be a great for me to adapt.
        Thank you

    1. The PCB is also very good! We have considered various things. I would not call it expensive. $ 11 for 4 pieces is very good!

    2. The PCB is just as good! It has other advantages but also disadvantages. Depends on what you want 😉 The costs are very good at $11 for 4 pieces?!

  1. The TP4056 charger says you have to disconnect the load during charging. I don’t see a switch anywhere in your picture to do this. Are you just ignoring this, or do you have a way to do it? If you are ignoring it, have you experienced any problems with it so far?

    1. I honestly never heard of it and had already seen it in many projects, like i do. How do you know that there is a problem? Currently I have built two nodes. The one actually has sporadic problems. And only these I had charged so far. Shit.
      What should the problems be?
      Can it solve the problem by taking the TP4056 without protection and installing external protection?
      Thanks for the information!
      Waiting for your answer 😉

  2. We actually build the same thing (component wise) that you did for the automatic hive measurement system for (also with the low power Arduino Pro mini) and we are planning to design a PCB. I would love to buy some PCB’s from you to test in our new scale design!

    1. Hello, a great project! Save the bees 🙂
      I like to help! How many PCBs do you need?

      Do you have people who design the PCBs for you?

      Get in touch! Greetings, Mario

    1. hello, I did not know the library, but it looks like it only measures the internal source. But I want to monitor the battery, which works between 3.5 and 4.2 volts. The internal voltage is in the optimal case at 3.3 volts. In my case, there is a voltage transformer between the battery and the AVR, which means that it would always be 3.3 anyway.
      Thank you for your comment 😉

  3. Dear Mario, can you send the link to the schematic circuit in EasyEDA? , there is only the design of the PCB. Thank you!

    1. Hey, I don’t have a schematic. At that time I simply drew the PCB and then pulled the connections by hand. There aren’t that many 😉

  4. Hello,
    Congratulation for your very good job !!
    Can you share your code used in this node ?
    Thank you,
    Best regards

  5. Hi Mario,

    Absolutely brilliant! But not having ordered PCBs before, I can’t work out how to place an order… I can get to the EasyEDA website (, assuming that there’ve been no changes since the earlier post), I can see the board there, I can even get into the editor. But I don’t want to change anything, I just want to buy some PCBs … Am I in the right place? Is there something I’m missing?


    1. Hello,

      you can be redirected from the editor to order.
      Select the layout “Arduino_Pro_mini-PCB-V1”.
      Then click on the icon with the “G” inside. “Generate Fabrication Files (Gerber)”. Without check.

      Good luck 😉

      1. Got it, thanks.

        For anyone else who is unfamilar with EasyEDA:
        1. Click on the link above to go to the EasyEDA website;
        2. Click on [Open in Editor] (for the Arduino_Pro_mini-PCB-V1 document which should be right at the top of the list);
        3. From the toolbar at the top of the editor screen, mouse over the folder icon and select [Generate Fabrication Files (Gerber)] from the drop-down menu;
        4. Skip Design Rule Checking by clicking on [No. Generate Gerber]
        5. Click on [Order at JLCPCB]—you can modify any available options from the order menu that will then be displayed.

        JLCPCB came back to me with a problem related to some hole sizes, but they just adjusted the relevant parameter for me and went ahead with the production.

  6. Dear Mario,
    I am new to lora and this pcb looks good for my project. I want to make a scale for my beehive with a 18650 cell as power supply with the support of a solar panel. I just don’t quite understand how I can order this pcb? Can you help me?

    Thanks in advanced,

          1. alexandru luchiian

            very nice job. seems you don t have the latest fil eon easyEDA. Missing holes for baterry (we can see in picture of your PCB).Can you help me with this? Maybe you have allreadu PCB in Europe?
            mail me

Comments are closed.