Categories

Archives

Elsewhere

     
       

TinyTX3 Wireless Sensor Board

TinyTX3 DS18B20

TinyTX3 fitted with a DS18B20 temperature sensor

Since I put the files for the first PCB version of my TinyTX wireless sensor node online in June I’ve heard from people around the world who have had their own boards made which is really encouraging, especially as it was my first PCB design and was mainly done just to learn how to use the Eagle CAD design package (I wish I’d seen these great tutorial videos when I started, it would have saved a lot of time). There is obviously a big demand for this sort of thing.

Like the earlier stripboard versions the first PCB version was designed purely for use with the DS18B20 temperature sensor but if you’ve been following the TinyTX progress you will know that I’ve since found lots of other uses for it.  Having only 2 of the ATtiny I/O pins being available was starting to become limiting though so I wanted to do a respin with additional pads for some of the unused I/O pins and I also took the opportunity to fix the tight clearance between the power connections and the RFM12B, improve some of the layout and add spaces for decoupling capacitors on the ATtiny and RFM12B, I’ve not had any problems without them on the previous version or on the original stripboard design but it is good practice to have them so we might as well have the option of fitting them if required.

The biggest change is at the top where I’ve added space for 6 I/O pins plus ground and Vcc (Row 1) and instead of a fixed space for a pull up resistor I’ve added two rows of standard 2.54mm spaced holes, one row (Row 2) connected to the header row and one unconnected row (Row 3) which will allow for many more configurations. The IO pins are labelled with the equivalent of the Arduino digital pins as used in arduino-tiny, it looks a little odd as the numbers aren’t consecutive but I didn’t think it made sense to do it any other way. 

TinyTX3 Front and Back

Front and rear views of the TinyTX3 PCB

This new arrangement allows sensors to be connected directly to the board as before or a male or female header could be installed on either side of the board, opening up the possibility of adding expansion boards (think mini Arduino shields) above or below the TinyTX3, perhaps an add on board with a step up/boost converter and DHT22 temperature/humidity sensor.

If you wanted to duplicate the original design with the DS18B20 sensor for example you could install the sensor across the pins marked 9 and 10 and GND on Row 1 and put a 4K7 resistor across the pads next to 9 and 10 on Row 2. The original code will then run unmodified.

TinyTX3 DS18B20

Pin numbers refer to Arduino pins when using the arduino-tiny core

Other possibilities include multiple sensors on one board, using resistors to create voltage dividers for reading analogue sensors, eg. thermistors or a voltage divider could be useful for reading the battery voltage when powering the board with a step up/boost converter board as the usual programmatic “readVcc” method won’t work in that case as the board always receives 3V3. I’m sure more uses will develop over time just as they did for the first PCB and as all the existing TinyTX code will still work nothing is lost.

You might notice I’ve soldered the ATtiny84 directly to the board on the one in the pictures above, what do I do if I want to reprogram it you might ask?

TinyTX Programming

IC test clip attached to ATtiny84 chip

These IC test clips are very handy, just wire it up to your programmer (or Arduino using ArduinoISP) and clip it onto the chip to program. If you don’t have test clips you will want to fit a socket to the board instead so you can remove the chip for reprogramming.

Here’s the schematic for the new board:

tinytx3_schematic

You can download the Eagle or Gerber files below if you want to order your own boards, I get mine made at Seeed Studio and for 10 boards it costs $9.90 (with a green solder mask, add $10 for other colours) + shipping, including shipping to the UK that comes to $13.86 in total which is currently £9.01 or 90p each. The guys at Circuits.io were also kind enough to import the Eagle files into their site for me so you can order boards in a pack of 3 from them for $14.67 plus $5 for international shipping. Unfortunately they don’t yet support adding text to the silkscreen so you will lose all the labelling with their boards.

Downloads:
Schematic (PNG format)
Eagle files
Gerbers (one per board) or 2 panelised on one board (you will need to separate them yourself).
Code

The hardware design files are also available on SolderPad here.

Parts List (excluding any sensors):
TinyTX3 PCB
ATtiny84A-PU microprocessor
RFM12B transceiver
14 pin DIP socket (optional if you have an IC test clip)
2 x 0.1uF (100nF) 2.5mm ceramic capacitors (optional)
Wire for antenna, eg. 0.6mm solid core (165mm for 433MHz, 82mm for 868MHz)
Battery holder for 2 x AA or AAA batteries

 

Open Source HardwareThis is Open Source Hardware licenced under a
Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) licence.

 

24 comments to TinyTX3 Wireless Sensor Board

  • Hi!

    Many thanks for your design. I think I will order the PCBs, but I have never done such a thing. If I get it right I can just upload your gerber zip to seeed and go with all the default settings?

    /Eric

  • Hi Eric,

    Yes, the defaults will be fine, just upload the tinytx3_gerbers.zip file.

    Cheers,
    Nathan

  • Eric Soderman

    Thanks Nathan. I sent the order now.. :-)

  • Alexander (@AlexandervdSar on Twitter)

    Hi Nathan,
    Just want to thank you for your great design and TinyTX code. I’m running several temperature sensors now, talking to a central node which is uploading data to open.sen.se
    Think I’m going to order some of your ttx3 boards. Looks really good!

    Thanks!
    Alexander

  • Eric Soderman

    Hi,

    I received my PCBs from Seeed a few days ago. Worked great and I only had to upload your zip-archive with Gerbers. Had to rename the archive as the name was already in use (by your order maybe…).

    Now I soldered the first board and also has a open energy rpi board. Seems to work on first try! Packets coming in when watching with minicom on the rpi. Next step to see what I will do with them. Probably follow the open energy route. Thanks again Nathan!

    Here is a pic of my first board:

    http://www.lysator.liu.se/~esn/temp/sa5bke-tinytx-01.jpg

    BR

    Eric in Sweden

  • Excellent, looks great Eric and yes I noticed that the file name had to be different to a previous order too.

    Cheers,
    Nathan

  • D83 (@Deepesh_ on Twitter)

    Hi Nathan,

    Been following your blog for few weeks now, I must say your work is very helpful. Thanks for all of this.

    Also, it is strange why aren’t you providing pre-made PCB’s, assembly kits and fully-assembled ready to run units for sale, how about crowdfunding?, having them bulk made will also result in lower costs for everyone with money to keep your efforts funded.

    Thanks

  • John

    I had the 2 per board panelised boards produced by Seeed. Quite difficult to cut the boards but managed it with a Stanley knife. Very nice work and many thanks for sharing your skills.

  • Yes it requires a bit of patience but I’ve found a Stanley knife the best way too. Experiments with a Dremel didn’t go so well. I believe a wet tile saw, the circular saw type are good but I think it might need a bit more space between the panels for that. I might give it a go anyway.

  • Vlad

    Just wondering how long 2 AA battery’s will last when powering this thing.

  • I did some rough calculations that estimated a couple of years and so far that is looking about right, one of my early ATmega328 based sensors has been running since December 2011 and is now down to 2.8V and the first stripboard ATtiny84 version has been running since February 2012 and now at 3.0V so plenty left to go yet and the code wasn’t very well optimised for low power usage at the start so it should be even better now. Both of those are transmitting every 60 seconds and with ACKs enabled.

  • Ken

    Hi Nathan,
    excellent site, big thanks. Just ordered a set of tinytx3s pcbs from seeed yesterday, can’t wait for them to arrive. Just have to get the rest of the stuff now. I notice in the parts list the caps are optional – could you explain what the difference will be if I do/don’t use them?
    thanks
    Ken

  • Hi Ken, The two capacitors are for filtering noise that could be generated on the power lines between the various parts of the circuit. Perhaps a better phrase than optional would be “you will probably get away without them”, in fact the first tinyTX versions didn’t have them at all and I never had any problems. I just added them to the V2 as it is good practice. For the minimal cost/trouble involved I’d say put them on.

    Cheers,
    Nathan

  • ken

    Thanks Nathan

  • Andy Collins

    Hi Nathan,
    Sorry to bother you- I’ve had some TinyTXv3 boards made (took months to get them delivered!), and programmed the ATTiny84 with an Adruino (successfully I believe), but the node does not appear on my RasPi Emoncms inputs list. I have a Funky from MartinH, and receive data from that ok via an RFM12B board.
    I’ve tried a second ATTiny84, but still get nothing. I have +ve battery volts at pin 1 and -ve at pin 14. Frequency/network group/unique node ID, etc. are all set correctly.
    Is there a any way of testing, please? Am I able to connect to the Arduino serial monitor in some way, for instance?
    Thanks in advance- great, inspirational work you’re doing.
    Andy.

  • Ken

    Andy, I’ll jump in with an answer anyway, it might get you going sooner.
    one thing you can do is document your tiny84 code with Serial.Print stuff, connect pin 0 of the tinytx board to pin 2 (almost certain) of an arduino proper – i’ve a duemilanova. upload a “blank” (i.e. bare minumum) sketch to the arduino and then it will print out the serial print from the tiny.

    also, have you remembered to changed your fuses on the tiny to 8mhz?

    One thing I noticed on the first one i built was a solder gap between my rfm12b and the tinyboard, so would hang on rfm initialization (built 2 boards at the same time, and of course the one i chose to play with first was the dodgy one – only when i moved the attiny to the other one in a moment of frustration did the thing start to work. – typical!)

  • Ken

    BTW, anyone who has the “2-per-panel” done in Seeed, I got good results using a junior hacksaw to separate them.

  • Andy, Try turning the ACKs off, ie. comment out the “#define USE_ACK” line in the TinyTX code. It’s been a while since I used the RasPi version of emoncms but I think if you have ACK turned on at the TX but not at the RasPi end it will ignore them.

    For debug going through an Arduino like Ken says is good, or an FTDI adapter if you have one. You’ll need to use SoftwareSerial on the ATtiny.

  • reganomics

    How do I order these on seeed?

  • reganomics

    I ordered the tiny tx3′s. Would a waterproof temperature sensor be able to replace the temp/humidity sensor in this module?

  • Yes, I’ve used this one before, it’s just a DS18B20 in a waterproof housing so the standard code for the DS18B20 will work.
    http://www.ebay.co.uk/itm/DS18b20-Waterproof-digital-probe-thermometer-temperature-sensor-thermal/141126162792

  • C W Rose

    Eagle 5.11.0 won’t open your TX2 or TX3 files with complaints
    of “invalid data”. At a guess it’s because it can’t find
    some library it needs – do you have a list of the eagle
    libraries you used? (The version of Eagle might be helpful
    as well). I need the board size to order some boards from
    SeeedStudios.

    Many thanks – Will

  • They were done in version 6 which changed the file format to XML so won’t work in 5.

    TinyTX3 is 22.9 x 41.9 mm so you want the 5×5 option on Seeed.

    Cheers,
    Nathan

  • C W Rose

    Many thanks – I’d avoided updating to 6 in order to avoid any possible
    compatibility problems with my older projects … downloading it now.

    (I’ve ordered some boards from SeeedStudio, using your Gerbers; you
    should definitely ask them for a referral fee!)

    Will

Leave a Reply


 


 


 

You can use these HTML tags
(links will be automatically marked with rel="nofollow")

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notify me of followup comments via e-mail. You can also subscribe without commenting.

By submitting a comment you agree that it can be reproduced under the same licensing terms as the rest of the content on this site.