I’m making a 315MHz radio. It will feature an Atmel microcontroller, a Texas Instruments ISM band radio, a client USB connector, a flash memory chip, 4 optoisolated transistor outputs, and a JTAG programming interface.
This radio will be a small platform for home automation attempts. The obvious first task for it will be to control the wall switch dimmer for the Bright Lights project, but this dimmer interface (Maxim Dallastat and D flip-flop) I’m going to use elsewhere as well. I have so, so much work to do before I can begin to actually consider practical purposes. I have to set up communications standards, program the mesh networking, generate encryption keys, program encryption algorithms, program boot protocols.
Here is the board
Part of this I’ve been working on for a while. I had the Atmel circuit done pretty well using a 915 MHz transmitter, but decided I wanted to use this lower frequency as it’s not quite so clogged up yet ( I hear 433MHz is bad already), and there’s a lot of bandwidth that this can cover. The antenna parts are tuned for 315 MHz central, but should cover a fairly good range if I want to stray a bit from there. The chip antenna is pretty cute:
The boards are quad-paneled for prototyping at Silver Circuits, and they are making 4 of them, so I’ll get 16 when I saw them apart. I have the parts for 2 to build, I combined an order from Digikey with the Linear Array LED light.
I have an Atmel Dragon programmer debugger, and a UC32 B0256 ETK1101 evaluation board. The new AVR32 studio version 2.6 seems to be working better than v2.5 so far. There is a lot of example code I can use, including the code from One-Net.Info, which has interested me before, but I’m using a Linux tool chain and the hardware so far described as useful to them is not very Linux friendly, in my humble opinion.
This is a lot. This is going to take a long time.
The boards arrived and they look pretty good. This was some pretty small detail, and the manufacturing is a little tight, but I’ve melted up one board and it works. These were pretty cheap to manufacture, but still… when I send off a design and it comes back and works, it’s a pretty good feeling.
The reflow toaster Oster was out in the garage, it’s January here in Michigan, and it’s fairly cold. The thermocouple registered 300 something degrees C when I turned it on (which is clearly stupid), so since I couldn’t use the oven I tried cooking up a board in a new Presto electric skillet (acquired in order to reflow and repair the Grow Lamp). It worked, but it didn’t seem to be quite as easy as the oven. It got plenty hot, but there seemed to be a lot of unmelted solder paste around the parts, especially the MCU. I tried to melt it on a little bit better with the Aoyue 2701a hot air pencil, but it didn’t seem to help and I scorched the board and a couple of parts. So far everything seems to be working, and the oven is just fine again after bringing it inside and letting it warm up. The skillet is nice for a little reworking if absolutely necessary, but I’m not completely crazy about it. The heating in the skillet is rather uneven according to my infrared temperature gun, maybe if I put in a piece of copper cold plate it will help.
AVR32 Studio drives an Atmel Dragon programmer, that’s talking to the board just fine on the JTAG port and powered by the USB port. It’s taking programming, it’s switching to the 50MHz oscillator, it’s running a small program with FreeRTOS and four tasks to toggle the four optoisolator outputs at 1Hz/50% each. I’ve got example code for the M25P16 flash chip, and for the CC1101 radio. It’s extremely encouraging.
Some bad news, the budget for this project has been completely slashed, along with everything else that isn’t food or rent. Hopefully this is extremely temporary. Fortunately, I’m at a point where I need much more time than money to proceed. I’m beginning to envision a larger block diagram for all the software components, and I’m thinking of a PKI infrastructure that should pretty much eliminate any silliness. Programming and testing is ongoing. My brain is like an enormous fish, it’s flat and slimy, and has gills through which it can see. Should these gills fail to open, it can cause a failure in the autonomic nervous section of the brain, which allows you or I to discern some facts and eliminate others.
The M25P16 flash memory is working, and I’m slowly starting to understand this microcontroller chip. I optimized the read function a little bit and it’s transferring bytes at 25MHz about 2.4uSec apart. This would suggest a data rate of around 417K Bytes/second, which is fast enough to support just about anything I’m going to expect of it. I might be able to interface a peripheral DMA controller to talk to the SPI, so it might go faster. Click this picture for a much larger and detailed one, you can almost see the coiled wire inside the little blue chokes on the antenna circuit. Note the scorch marks around and underneath the Atmel (larger black square at center left).
Here’s a funzie, a movie of an oscilloscope trace of the second command byte from the SPI data input during a read command sequence. The program is reading all sectors of the chip, so the sequence shows a binary progression of the 5 bits (32 sectors) switching in and out. It’s only a 2 megabyte chip, but I don’t really need more than that right now, and it costs less than $2.
Squiggly green lines. Those bits are about a tenth of a microsecond wide, this is about as much as my old Tektronix 475 can take.
Copyright (c) 2010 MDVE.NET. Some rights reserved.
This design is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License .