Friday, November 26, 2010

Bluetooth Thermometer R3.0 - Up and Running

Happy Friday Everyone,

After another busy week at The OC it was time to kick back, relax, and do some hardware design. After several miserable lab periods spent debugging R2.0 hardware I discovered that for some reason the PIC16F628 was not willing to run off the 3.3V power supply on the board, even though the datasheet claims that supply voltages as low as 3.0V are fine.

Not wanting to waste any more time, I swapped the PIC16F628 out for the PIC12F675 used in the original design. It was such a substantial change that I ended up scrapping the old PCB file and starting from scratch, and after a quick three hours in Altium Designer I had my revised schematic and PCB layout.

Figure 1.0: A 3D Rendering of the New PCB


The design transferred perfectly to copper the first time, bringing the total fabrication time down to just over an hour. Right now I'm just waiting for the new Sure Bluetooth Module to arrive in the mail; in the mean time I have a few wires going from the PCB to a breadboard with the one lonely module I do have jammed into the side.

Figure 1.1: Completed PCB with Bluetooth Module on the Side


I spent a little more time hacking away at the firmware; unfortunately I won't be able to implement any of the configuration options I was hoping to due to the minute amount of memory in the PIC12F675.

That's all for now - With any luck I'll be able to post the firmware, schematics, gerbers, and PCB layout on my website. 

Saturday, November 20, 2010

Bluetooth Thermometer R2.0

Afternoon,

It's been a fair while since I've posted anything - Things at school are starting to wind down (or up, depending on how you look at it) in preparation for the end of the semester, which is now a mere two weeks away.

The Bluetooth thermometer project I started a couple months back has recently been revived and will be making a cameo appearance as my final project for my Introduction to Electronics course. Since it is now a school project and I can actually justify investing time in it, I have decided to make quite a few changes, including a new microcontroller, a firmware overhaul, and finally a PCB.

Figure 1.0: R2.0 PCB Partially Populated

After playing Altium for four hours straight, I finally had a schematic and layout that I was happy with, and transferred it to copper. Top left is the ICSP port and the power connector sitting beside the PIC16F628 MCU. The power supply is in the top right, and in the bottom center you can see where the Bluetooth module will sit. At the moment there are wires carrying +3V3, GND, TX, and RX to a breadboard that has my old Bluetooth module in it. Once I know the layout is good I'll solder one of the new modules I've ordered straight onto the PCB, but at $15 a module that won't be happening until all the bugs are gone and the layout is finalized.

Unfortunately, things don't appear to be off to a great start: as things stand I can't even program the PIC. I'm not sure why, but the programmer isn't able to communicate with the board. I did manage to get it to work once, but that was it. Everything seems to check out okay, but I have a feeling there's a short hiding somewhere.

Schematics, Gerbers, Firmware, and the whole 8.226 meters will posted on my website: www.jamiemaloway.com/projects/bluetooth-thermometer

Friday, November 5, 2010

Arduino Piano (No Floppy Drives Involved - I Promise!)

Sorry for the lack of updates - This past week was a busy one, with much time being spent with the ELEN Workgroup.

So - Circuits: This is a bit of an extension on a project for my Introduction to Electronics course. The original design was a simple, twelve-note Arduino-based polyphonic synthesizer that used an Altera FPGA demo board to MUX the inputs together into a four-bit number.


Along the bottom you can see a row of twelve SPDT momentary push button switches wired up as active-high inputs to the Freeduino board on the left. Switches one through six are wired up to the analog inputs; which can actually be used as digital inputs through the "digitalRead" command using the pin numbers 14-19. The remaining six switches are connected to digital inputs two through seven, with pins ten through thirteen constituting the "data bus" between the two Arduinos.

The Arduino on the left is running David's (my instructor) original synthesizer code. The software decodes the four-bit binary number it sees from the "keyboard" and plays the corresponding note through a DAC over the SPI bus. The pot dangling off the right side of the board is used to fine-tune the synthesizer pitch, and the speaker in the middle-right produces rich, high-fidelity audio comparable to the output of singing greeting cards and the score of most video games from the 1980s'.

I'm still hacking away at the firmware: I'm having trouble figuring out how to encode the number read from the keyboard as a binary number correctly. Perhaps it a solution will jump out at me tomorrow morning...

Oh - and one last thing:

"I ALWAYS have coffee when I watch radar. Everybody knows that!"