Thursday, 24 September 2020

Tinysensors Redux


Raspberry Pi Zero-W with Tinysensor Hat

It is often instructive to revisit an old project: you never know what you might see with fresh eyes. Such is the case with Tinysensors, which has featured here several times over the years. Since it lives in Github I use that platform's Issues feature to collect ideas which pop into my head when I am otherwise occupied. This provides a nice context from which to start revisiting.

Among the issues addressed since the last time we featured this project are:

  • Switching to the ATTinyCore. From my point of view, the most important feature of this great project is its support for Optiboot. This decreased the testing time for changes to the Tinysensor sketch by an order of magnitude. No more external programmers!
  • Removing the RF24Network library. This supports a very versatile model of organising nRF24L01+ radios into a fully-connected 5-way tree. However it necessarily limits the number of leaf sensors to 5, requiring bridges to interconnect different levels. A star topology removes this limitation, and also reduces the code footprint enough to support debugging via SoftwareSerial.
  • Reducing power-drain. With the above improvements in testability, it didn't take long before a gotcha in power consumption was spotted: a voltage divider made with a built-in pullup resistor consumes current even during SLEEP_MODE_PWR_DOWN!
  • Moving the hub to Raspberry Pi Zero W. This has more memory and more processor for smaller footprint; in addition to built-in WiFi and Bluetooth. Once that was complete, a proper Hat was designed to hold the nRF24L01+ radio and status LEDs... and a power button, just 'cos.
  • Outsourcing the RF24 library to nRF24. These guys have put a lot of work into improving the performance of Maniacbug's excellent original library, which means I don't have to!
Future work? A nice next step might be to redesign the sensor PCB for a coin-cell and surface-mount components. However I'm pleased enough with these changes to park it for another couple of years!

Thursday, 27 August 2020

Soldering surface-mount components


ncp1402 boost converter

The image shows a breakout board for an NCP1402-based boost converter which steps-up 1.5v to 5v; these circuits are widely-used to power 5v (or nowadays 3.3v) from a single coin cell. (The board is my design, in KiCad, based on the manufacturer's recommended application.)

Of more interest here is the regulator component itself. This is the small 5-pin chip midway up the right-hand side of the board. It is a surface-mount SOT23-5 part, approximately 3mm by 1.5mm, far smaller than a grain of rice. Building this breakout board was more an exercise in seeing if it was possible to hand-solder these parts than anything else, since they are widely available for cheap on t'Internet.

So how did I do it? The first step was choosing a hand-soldered footprint for the part in KiCad. Then, once the boards had arrived, this part obviously had to be soldered on first:

  • Apply solder to the pad under one of the further-apart pins (on the left in the picture)
  • Place the chip over this pad with a tweezers and hold it in place
  • Melt the solder on the pad until it flows over the pin
  • Solder the other pin on the left-hand side
  • Solder the three pins on the right-hand side together
  • With a desoldering pump (braid should work too), remove the excess solder from these three pins, so they are no longer shorted together.
Tweezers and magnifying glass (or low-power microscope) are essential, unless you are some sort of assembly robot. Fine-gauge solder and a fine-tipped soldering are helpful too.

Note that the circuit itself helped me "get away" with the final two steps of the procedure above: of the three pins on that side of the regulator, one is NC and the other two are connected to Vout. However checking with a continuity tester indicated that they were no longer shorted together, so the pump had worked as expected.

So the experiment being successful, the next step is to build more surface-mount parts into my designs. 10k resistors and 100n capacitors crop up very often so they would be obvious targets for replacement. Stay tuned!

Wednesday, 22 July 2020

Simple Variable Voltage Bench PSU

Back in the days of the desktop PC, a common DIY project was to re-use its ATX power supply as the basis of a Bench PSU. Sadly those days are slipping into the past as more and more of us move to laptops. All is not lost however, as most laptop transformers also deliver a reasonable output voltage which can easily be down-regulated and supplied to nascent bench projects.

The circuit schematic could hardly be simpler --- I am fairly embarrassed that the best I could do to obtain it for insertion here was "Print Screen" in KiCad. All of the action is provided by an LM317 linear regulator which costs peanuts these days. The output voltage is given by:

Vout = Vref * (1 + RV1 / R1), Vref = 1.25v

Note that this is independent of the input voltage, although obviously it can't be greater. Also we want to choose R1 so that the output is at sensible values for differing positions of the (linear) potentiometer RV1. Given a transformer rated at 19v, we choose R1 = 680R, giving values of Vout:

RV1    Vout 
0      1.25
2k5    5.8
5k     10.4
7k5    15
10k    19.6

Obviously the last value is a little too high, however this value of R1 gives the greatest precision for the transformer at hand.

The design is completed with a cheap LED voltmeter as shown below.


Simple extensions to this design would be to use a combined Voltmeter/Ammeter display (also costing peanuts); adding a current-limiting circuit, or a switched constant-current source, also supported by the LM317. Next time!