Wicked Device WildFire
Vic at Wicked Device kindly sent me one of their new WildFire Arduino compatible boards to try out. The WildFire uses the ATMega1284P microprocessor clocked at 16MHz and has an onboard Texas Instruments CC3000 WiFi module and a MicroSD card slot all on a board the same size as a standard Arduino Uno or Duemilanove.
Followers of this blog will know I’m a big fan of the ATMega1284P and it was what I used in my own OSWIN Arduino compatible board although that was with the huge 40 pin DIP version, the WildFire uses the 44 pin TQFP package making a much smaller board possible.
The ATMega1284P has quite a few advantages over the ATMega328 used in the Uno and Duemilanove, more RAM (16KB v 2KB), more Flash (128KB v 32KB) and more EEPROM (4KB v 1KB), things which really make a difference when doing web server type applications. There is also more I/O, on top of the usual array of pins found on the Uno/Duemilanove etc. the WildFire has 2 more analogue pins squeezed in next to the usual 6 and an extra 6 pin header provides 4 more digital pins as well as duplicates of the I2C pins and there is also a JTAG programming/debug header. You also gain a second UART on D2 and D3 and an extra interrupt that means two are still available for use (INT0 on D2 and INT1 on D3) even though INT2 on D8 is in use for the CC3000 IRQ. All the available pins on the WildFire are at a 5V logic level with a couple of buffer chips handling the high/low conversions to the 3V3 parts (CC3000 and uSD slot).
Some of the pins are used for communication with the built in peripherals, namely D4 for the uSD slot CS, D7 for the MAC chip data, D8, D9, D10 for the CC3000 and of course D11,D12,D13 are the SPI pins used for the uSD slot and CC3000. The WildFire library allows you to easily create an object to make sure these pins are initialised in a safe state.
Continue reading Wicked Device WildFire Arduino Compatible with ATMega1284P and WiFi
Nick was kind enough to send me one of these little Ikea cupboard lights that he had the great idea of adding one of my TinyTX sensors to. These motion controlled LED lights are only £5 for two and are available in a range of colours, they are only 7.5 x 6.5 x 1.8 cm with 4 LEDs, a PIR detector and run from 3 x AAA batteries.
This is an excellent find and the size is spot on for the TinyTX, by removing the four LEDs (or just three of them) the TinyTX 2 or 3 will fit in nicely (with the ATtiny84 soldered directly to the board for a reduced profile) and the PIR control board will happily run on only two AAA batteries so we can bridge the third one leaving space for the antenna and maybe a sensor or two. It makes for a much neater and more compact occupancy sensor or room node than the Airwick iMotion Freshmatic that is commonly hacked for this purpose.
Comparison with Airwick
Continue reading Ikea Oleby Motion Activated Light Hacking with the TinyTX
Zara from Germany has been in contact to say he has had some of my Tiny328 wireless Arduino boards made and has some spare PCBs that he would like to give away so if you could find a use for a small wireless Arduino compatible or two and can handle a bit of SMD soldering then this is your chance.
These boards have been nicely panelised with two per board as pictured, to complete them you will need to separate them yourself and you will need the following parts along with the ability to solder the SMD components. This can be done using the reflow method or with a fine tipped soldering iron as Élio has done with his.
Additional components you will need:
1 x ATMEGA328P-AU Microcontoller
1 x SMT ceramic resonator 16.0MHz
1 x Microchip MCP1700T-3302E/TT 3.3V SOT23 LDO Regulator
5 x 0603 0.1uF ceramic capacitors
1 x 0603 1uF ceramic capacitor
1 x 0603 10uF ceramic capacitor
1 x 0603 10K resistor
2.54mm male or female headers as required
And if you want to add the optional wireless transceiver:
1 x Hope RF RFM12B/Alpha TRX433S or a Ciseco SRF
Wire for the antenna, eg. 0.6mm solid core (165mm for 433MHz, 82mm for 868MHz)
Zara says he is willing to post some of these to up to five people anywhere in the world free of charge so if this sounds like something you would use please post a comment to that effect below and I will send him details of the first five (don’t post your address, I will email you for that so make sure the email address you use to comment is valid).
Huge thanks to Zara for this very kind offer.
Vichy VC99 with wireless serial link
The Vichy VC99 is an inexpensive 6000 count multimeter with pretty decent performance compared to some others in the same price bracket, one really nice thing about it is that it is very easy to add an RS232 output as described here, just a case of soldering a wire to an unused pin on the processor. Of course it makes sense to isolate the meter from your PC, usually this is done with an opto coupler as in that link and I’ve also seen people using infrared LEDs but I thought I’d go one step further and make it a radio link using a Ciseco SRF in the meter and a SRF-Stick at the receive end so I can still record data without being physically near the PC.
It’s all very simple to set up thanks to the SRF transparent serial mode. First you need to temporarily connect the SRF to a PC via a serial adapter of some sort and use the command mode to set it to 2400 baud then it is just a case of soldering a wire from the serial output on the VC99s processor to the DIN pin on the SRF and connecting power. The PCB in my meter is slightly different to the one in the article above and VCC wasn’t available in the same place so I used the upper connection to the buzzer which is VCC only when the meter is on, for the ground I just connected where the battery connection goes in. I used one of my RFM12B breakout boards to make soldering to the SRF a little bit easier but it’s certainly not necessary.
Continue reading Adding a wireless PC Link to the Vichy VC99 Multimeter
The first Tiny328 successfully reflow soldered
So here is the reason for the last couple of blog posts.
This is my first venture into designing an SMT board and apart from the practice run I did with some breakout boards it is the first time I’ve attempted to solder anything as small as a TQFP package or the tiny 0603 passives (1.6 x 0.8mm) used here. It’s something I’ve been wanting to try for a while and I’m happy to report that it all went well and yes, you can definitely solder these things at home with a minimal outlay.
ATmega328 + RFM12B * TinyTX = Tiny328
The original TinyTX wireless sensors were named as such due to the use of the ATtiny microcontroller rather than because they were tiny, this one uses the ATmega328P but the Tiny name still seems to fit as at only 23 x 36 mm its actually slightly smaller than both the previous TinyTX PCBs. So Tiny328 it is.
The idea behind the Tiny328 (apart from the intro to SMT) was to make something that is as small as the TinyTX but with a lot more I/O and full Arduino compatibility without any messing around with different cores or USI implementations of SPI/I2C. I went through several design iterations with this board, originally starting with a square board with the I/O pins around all four edges but eventually decided on something more like the Arduino mini, Teensy or Moteino designs with the I/O pins down the long edges spaced so that it is breadboard and stripboard friendly which makes it a lot more universal. Other than a (to me) more sensible pinout than the mini the other main differences are the use of an external FTDI adapter instead of an on board FTDi chip (keeps it simple and low cost) and on the bottom side of the board is a footprint for an optional RFM12B/Alpha TRX433S or Ciseco SRF transceiver. With those decisions made the final size sort of dictated itself and it couldn’t really be any smaller than it is without making compromises somewhere.
Apart from the requirement for a separate FTDI programmer the Tiny328 can pretty much do everything that an Arduino Duemilanove or Uno can do as all the pins are broken out to the standard 0.1″ spaced headers and by using the standard Uno bootloader it is fully compatible with the an unmodified Arduino IDE.
Continue reading Tiny328 – A mini wireless Arduino clone
DIY Vacuum Pick Up Tool
To make fast placement of small SMT components easier I wanted a vacuum pick up tool. I bought one of these basic manual ones for £1.72 and it works OK for the money but as it doesn’t have a continuous vacuum it can unexpectedly drop the component if you aren’t careful. Something better was required.
I’d seen that other people had constructed their own using aquarium pumps, nebulisers etc. so I dug out a cheap and nasty aquarium pump that I already had but its design made it too hard to reverse the operation, the part where the valves are is all moulded so it wasn’t possible to reverse them and getting to the inlet port wasn’t possible without destroying the whole thing as it was heavily glued. I attempted to seal the case the case and add an inlet to that but it was leaking like a sieve.
So the really basic ones are best avoided but the second attempt with a Hidom HD-603 was much more successful and still not expensive at only £9.75 on eBay. This one is of a much higher quality and the valve assembly can easily be removed and turned round so that the inlet and outlet ports are reversed. It even has a dial to control the pump rate which may or may not come in handy. It’s also a lot quieter than the other one which is a bonus.
Continue reading DIY Vacuum Pick Up Tool for SMT Components
Some breakout boards to practice on
I’ve been working on some all SMD PCB designs that include TQFP chips recently and although I’ve hand soldered a few SMD capacitors and resistors before I’ve never soldered any SMT ICs so I thought I should get some practice in. I know people say you can solder even TQFP chips by hand but I don’t have the dexterity, eyesight or patience for that so some sort of reflow method was required. The common hobbysist method you see for reflow soldering is using a toaster oven but an alternative method is to use a hot plate, in fact a lot of people prefer the hotplate method to the toaster oven citing better control of the end result as you can see when the reflow occurs and it avoids problems where plastic connectors are involved where the all round indirect heat of an oven can start to melt the plastic before the solder flows properly. There are actually hot plates purpose designed for this but I saw that lots of people had used ordinary domestic hotplates and you can even do this on your ordinary electric hob if you have one, mine is gas though so I ordered one of these cheap single plate electric hobs along with an IR temperature gun to keep an eye on the temperature, total cost under £22, not bad at all. To practice on I ordered 8 pin and 16 pin SOIC chips and a 44 pin TQFP ATmega32U4 along with some breakout boards.
The first thing you need to do is apply some solder paste to the pads for the components. In the case of resistors, capacitors etc you just need to dab a bit on each pad and I found a toothpick was a good application tool. For ICs you probably won’t be able to apply paste for each individual pin but it is OK to apply it across them all together as when the the solder reflows the capillary action will draw it towards each pin so hopefully you won’t be left with any solder bridges. If you do get some solder bridges they are easily dealt with later using some desoldering braid.
Continue reading Reflow soldering with a domestic hot plate
nRF24L01+ mounted on a TinyTX3
I thought it was about time I did a post on the testing I did with the nRF24L01+. This low cost transceiver IC from Nordic Semiconductor works in the 2.4GHz ISM band and you can find boards based on this chip very cheaply indeed, I picked a pair up on ebay for 2.89 USD including shipping from China, yes, an incredible 97p each!
The nRF24L01+ supports 3 data rates, 250kbps, 1Mbps and 2Mbps, there is also the older nRF24L01 which only supports 1Mbps and 2Mbps so the + model is the one to go for as the 250kbps data rate option can extend the range by around 3x compared to 1Mbps mode and is easily fast enough for a simple sensor node.
As they operate in the 2.4GHz range you wouldn’t expect the range indoors to be as good as a 433Mhz or even 868MHz device but I’ve tested it around the house and I seem to be getting a range not too dissimilar to the RFM12B, or at least it works in all the positions I have an RFM12B. I’m surprised it works as well as it does as I’ve heard other saying they only get a few meters although Martin did get some decent results too.
There is a library here that makes it easy to get up and running in a standard Arduino environment but I wanted to try it with our little friend the ATtiny84 as used in the TinyTX, which requires a different approach. Instead I used this forked version of mirf that is compatible with this fork of the aforementioned RF24 library.
Continue reading Experimenting with the nRF24L01+ 2.4GHz radios
OSWIN with RFM12B, XRF and OOK receiver.
So after getting an SRF based TinyTX and an OOK based one running I thought I should update the gateway code for my OSWIN gateway to support both types of sensors as well as the RFM12B.
To receive the SRF node I’m using a Ciseco XRF in the Xbee socket and the OOK receiver is plugged in across four of the analogue pins (only 3 are used).
The updated code is available on Github here, there are some defines near the top to enable or disable which type of radios are to be used and a few settings to configure which pins the OOK radio is connected to. ACKs and the NTP time transmit function are only supported with the RFM12B for now but I may add them to the SRF/XRF combo later.
This shows the serial debug mode showing the three different types of nodes coming in, an RFM12B based node, an OOK node and an SRF node.
Continue reading OSWIN Gateway with RFM12B, SRF and OOK Support
TinyTX with OOK radio
Going the opposite way to the last post this is a version of the TinyTX wireless sensor node using a very cheap radio setup. I first experimented with this 433MHz OOK/ASK radio pair a few years ago with an ATmega328 and the VirtualWire library but I never did much with it beyond a simple demo and when I started using the RFM12B it got shoved in a drawer and forgotten about. At some point I dug it out and botched it onto the TinyTX V2 board you see here but it seems that the internal oscillator on the ATtiny84 isn’t accurate enough for the timing required for VirtualWire and I couldn’t get it to work so it languished in a drawer for a while longer.
After a recent discussion reminded me about it I thought I’d give it another try with this Manchester encoding library which is supposed to be a lot less timing critical and it does indeed work perfectly and makes it very easy to use a struct to send the data back to the gateway just like with the RFM12B and SRF versions.
The eBay listing I bought mine on is long gone but there are loads of similar ones on there for as little as £3 for the pair. My transmitter is a AU-T01 and the receiver AU-RM-5V but I’ve seen identical looking ones sporting different part numbers, these look identical for example. I can’t find a datasheet for either but the notes I have from when I bought it says the transmitter should work on anything between 3 and 12V (consuming 9mA at 3v) but the receiver is specified at 5V (as the part no. suggests), however I’ve tested it on 3V3 and it seems to work fine.
Continue reading Using a cheap OOK radio with the TinyTX