Showing posts with label open source. Show all posts
Showing posts with label open source. Show all posts

Thursday, 1 August 2013

Goodfet hardware developing tools

Trevor Goodspeed is an amazing hacker and hardware designer.

In the moment there are three pcbs available.

First the Goodfet Trevor's signature module.

The GoodFET is a JTAG adapter,  based upon Texas Instruments MSP430 FET UIF
The Goodfet can not only be used as a programmer, but also as an universal serial bus interface.

Second the GoodThopter

The GoodThopteris an opensource Can bus monitor.
The main purpose of this board is to explore Automotive communication buses, currently supporting only the CAN bus. In addition to the Goodfet a high-speed CAN Transceiver and a Stand-alone CAN Controller with a SPI Interface was added. The GoodThopter also allows users to purchase the cheaper OBD2 cables from SparkFun.

And third the Facedancer

The Facedancer is a hardware revision of the GoodFET except unlike the general-purpose GoodFET boards, the only purpose of this board is to allow USB devices to be written in host-side Python, so that one workstation can test the USB device drivers of another host.

I received pcbs from the above modules and will post a more detailed blog entry for each of them soon.



Trevors hardware and software are available under the BSD license, and free-as-in-beer boards will be given to those who ask politely.

Goodthopter Facedancer and Goodfet pcbs


Links:
Goodfet further information
Goodfet Homepage
GoodThopter Homepage
Facedancer Homepage
Ordering blank pcbs 

Tuesday, 30 July 2013

Arduino Video Overlay Shield

In 2011 I won a free pcb from Dangerous Prototypes, a Arduino shield you can use to overlay and display data on a video stream.

The Arduino Video Overlay Shield is based on the MAX7456 on screen display chip.
The Arduino compatible shield board overlays text on analog video, therefore
it allows easy overlay of text onto an analog video signal, NTSC or PAL.
Just plug it on an Arduino processor board to get started.
The shield is created by Lowvoltage Labs.

 I wanted to use it to display the subject line and address  of incoming emails while watching tv.
Another use could be a osd system to display flight data on rc planes.

Unfortunately the board needed a 27 Mhz crystal and I could not get my hands on one.
As soon I got one I could not find the board anymore,...
Meanwhile I found it and finally assembled it. The board worked out of the box, except the processors character set is Japanese by default! Luckily I could find a European standard Ascii character set and some code to upload it. The character set text file size is 170 kB and the upload took about three minutes.

Now the hello world output does not look so strange anymore.
A fine board and a interesting new chip, what could you possibly ask for more ?

One final but important note, do not forget to insulate the osd output plug, because it will most certainly short out on the Arduino Usb plug.

Osd shield ready for action
Osd shield top side
Osd shield bottom side, please do not forget the insulation on the video out side plug
Hello world test osd over webcam input


Links:
Dangerous Prototypes Video Shield Announcement
Lowvoltage Labs
Seeedstudio sells assembeled boards
MAX7456 datasheet
Wiki entry
Arduino forum thread

Friday, 26 July 2013

3 Ghz counter and power detector build Part II Troubles programming the Dsp

When I populate a new pcb I first solder the chips with the smallest footprints.
Next in order are the bigger ics and power supply chips.

Then I make a break and program the controller.
To program a Pic chip you just need the chip, some decoupling capacitors a pullup resistor  on the reset line and the three programming data lines MCLEAR (reset line),PGC,PGD.
Usually pic chips are super easy to program, compared to the Atmel Avr line they even don't need an oscillator.

So with high hopes I started  the Microchip ide Mplab, connected the programmer to the board (using pogo pins to avoid solderin a connector) and clicked the connect menu entry.


Connecting to MPLAB ICD 2
...Connected
Setting Vdd source to target
ICDWarn0020: Invalid target device id (expected=0xF0F, read=0x0)
...Reading ICD Product ID
Running ICD Self Test
... Failed Self Test.  See ICD2 Settings (Programmer->Settings) (status tab) for details.
MPLAB ICD 2 ready for next operation

Hmmmm
At least one head scratching hours later, no difference.
The Dsp chip simply told me in this working environment we ar on strike, go f*** yourself.
Now what to do if a processor is in working refusal ?
The best way is to negotiating with their local labour union boss, the datasheet.
In a good datasheet there is often a minimal working environment section and voila there is a strange pin number 7 called Vcap/Vdcore.

Hmmmm

After further reading I understood the internal core runs on 2.5V and to avoid an extra power line the chi provides an internal regulator which needs a decoupling capacitor.

Next try:

Connecting to MPLAB ICD 2
...Connected
Setting Vdd source to target
Target Device dsPIC33FJ32GP204 found, revision = Rev 0x3006
...Reading ICD Product ID
Running ICD Self Test
...Passed
MPLAB ICD 2 ready for next operation
Programming Target...
...Validating configuration fields
ICDWarn0046:  Because clock switching is enabled, MPLAB ICD 2 requires the user to cycle target power after a program operation.
...Erasing Part
...Programming Program Memory (0x0 - 0x54FF)
Verifying...
...Program Memory
...Verify Succeeded
...Programming Configuration Bits
.. Config Memory
Verifying configuration memory...
...Programming succeeded

BOOOOOM
Success, the chip is now programmed.
Now that was some heavy lifting , usually troubles appear from the most unexpected direction.

Time for some pictures:
Dsp processor

PLL chip very small footprint

 Log Power measurement , Cpld and Pll chips

Links:
3 Ghz counter and power detector build Part I
Elektor project page

Thursday, 25 July 2013

GPS Locator

I often read about new Gps receiver which are so sensitive the even get a lock indoors.
Every now and then I believe this rumours buy the unit try it at home and of course it does not receive enough satellites to get a lock sometimes it does not even receive one.

A gps receiver at would be grat, I could synchronise my Rubidium oscillator with the 1pps output, or build a timeserver ,...

 The MTK3339 Gps receiver I tested has a pretty fast fix and there is a breakout pad available which fits on the Launchpad. There is even the option to connect a battery to it so it does not lose its satellite data and only needs a warm start.

When you remove the target processor on it you can use the Launchpad as serial to usb converter.
So you plug the Gps pcb on the Launchpad, start a terminal programm on the Pc and watch the Gps data flow.

Unfortunately no Gps lock at home, but nevertheless a very sensitive and fast Gps receiver.

Gps Locator pcb

Gps Locator bottom view

Links:
Booster Pack shop link
Gps receiver

Wednesday, 24 July 2013

Nokia 5110 Msp430 Booster Pack

Texas instruments is becoming my most used development platform.
The launchpad series is great for rapid development and did I mention the debugger is great ?
Since Ti is such a big company it is somewhat hard to gather the information you need, since they have many technical writers and thousands of documents. They also lack some kind of easy tutorial which just gets you started like the one from Embedded Artists for the Nxp line or I simply have not found it yet.

Edit:
Unbelievable there is a great tutorial site from Ti I just found it within minutes after I wrote this blog,...
http://processors.wiki.ti.com/index.php/Getting_Started_with_the_MSP430_LaunchPad_Workshop



On the other hand there is a great user community and if you have some experience with other controllers you will get used to the controller line soon.

The Nokia booster pack is designed by RobG and it is also possible to build it as a  stand alone display.
I decided to do so, but I had great difficulties to get the programmer to recognize the board.
In the end my reset controller consisting of an resistor and a capacity did not work out. After hours of head scratching guess work I removed the capacity and it did work immediately, very strange.
To program the controller I simply put the board on a launchpad with empty target controller socket.

I tried some example code from the designer and the booster pack worked great.

I usually don't like displays without a character generator,  but once you defined the character set you won't notice a difference, so no problem whatsoever.

The Nokia 5110 display is controlled via Spi bus, so update rates are fast and programming is easy once you get used to the concept. There is a nice lecture from Cornell university which helps you understand the basic concepts to use a Spi bus.

Btw. I decided to build a standalone version, because I can implement a full blown easy to use display controller module and then simply connect any circuit to it to use it, even the interface choice is flexible, from simple bit bang mode to serial or I2C anything is possible. I simply like modular approaches.

Finally some pictures:

Nokia 5110 msp430 booster pack

Bottom side

In action

On top of the launchpad to program the controller


Links:
Spi tutorial
Buy pcb from 43oh shop
Build thread

Tuesday, 16 July 2013

Backwoods Logger

The Backwoods Logger is a very useful at displaying graphing and logging pressure, height and degrees , all in the size of a Tic-Tac box weighing about 1 ounce.

It's built-in oled screen can show current data or graphs of data vs time within a scale from the past 2 hours to the past 2.5 days.

Most important, this logger is an open source project.
The logger is based upon a Bosch BMP085 temperature and pressure sensor and an Atmel AVR ATmega328P micro controller.

I built this device about a year ago and often used it.
Unfortunately I once left it in my trousers bag and put it in the wash machine.

Of course it was broken afterwards, the display and the pressure sensor had to be replaced.

I changed them today and now the logger is back and alive again.
Since it is so small I can use it inside an rc controlled glider as an altimeter.

Btw. did I mention it uses an oled display ?!
 


Backwoods logger start up screen

Backside with micro controller and sensor
Washing machine casualities

For more information please visit the project's hompage



Thursday, 11 July 2013

Meet the Powerscope

Since Ti announced the Launchpad I was very excited to play with this awesome development tool.
It is like a Arduino on steroids, mostly because of it's 16 bit capability and most important it has a debugger.
When your code does not work nothing is more useful than a debugger, maybe  with the exception of a razor sharp brain and years of development experience might not hurt either.

Since the Msp430 line supports low energy consumption and have many different feature sets it is important to verify if the consumption is really as good as it could be. To see exactly what is going on, a scope is the tool of choice, but for a quick estimation the Powerscope is much more comfortable and easier to use.

When measuring very low power devices I would not recommend to use a multimeter, because of their usualy high burden voltage. To circumvent this problem, David Jones from EEVBlog designed the uCurrent , also a great tool.
The Superprobe is a somehow similar device, but it has it's own display so you don't need to connect it to a multimeter.

I also built an usb adapter to attach the Powerscope to a Usb device and measure it's power consumption.
In the attached example pictures I connected the Powersope to an Launchpad which drove a CC2500 radio device.It does not make much sense, because the attached debugger also has a unknown power consumption but it gives an idea of usage and it also shows that the TX mode consumes about 17 mA more than the RX mode .Btw. the code in the moment has no power optimisations what so ever, I was more than happy to get the CC2500 up and running,...

The programming of the Powerscope also was more than easy.
You can either use the Launchpads programmer by removing all the jumpers and insert a programmer cable or you can like me use a Goodfet programmer designed by Travis Goodspeed.
Since I don't like to solder headers just for one time programming, I made a small programming cable with pogo pins. You can use this kind of connection even for debugging.

You can buy an empty pcb at the 43oh store.

Powerscope front side


Powerscope back side

Powerscope connected to Lauchpad in TX mode

Powerscope connected to Launchpad in RX mode

Goodfet 4_1 programmer and programming cable with pogo pins


Links:

Buy Powerscope pcb
Designer thread
Powerscope Code and Info page
Goodfet programmer

Wednesday, 10 July 2013

Spectrum analyzer Part VI DDS Module(s)

Description (copied from Scotty's web page)

The DDS module is designed and configured with a filter and squaring circuit in the DDS A path.  The filter shown is a 10.7 MHz crystal filter with a 15 KHz bandwidth.  
The squaring circuit of U3 will output a CMOS level, capable of driving a 50 ohm line (J4).  
J3 output is an unfiltered output of the DDS B and will contain all harmonics and aliases of a normal DDS output.  Its output power level is approximately -8 dBm.
For best results, the Clock Input at J1 should be a 5 volt peak to peak square wave, but it will operate at a much lower input.  R3 determines the input impedance of the module.  The input clock frequency must be between 1 MHz and 125 MHz, although the AD9850 is somewhat underrated.

Build process

Soldering the dds chip is somewaht tricky, good magnifying glasses are a must.
Since the DDS chips are serially programmed, I use a different pcb (which I got in a group buy) with only 5 inputs.I think it was routed by Sam Wetterlin but I am not sure.
Studying the schema carefully is highly advisable since there is always a chance that components are placed in a different location.
Because I am building the complete" analyzer, I had to solder two of this modules, the second one is used in the tracking generator.

One of the coming blog posts will be about testing the DDS module and how to shield a Slim module properly.



DDS module rev D with serial input only

 Links:
Spectrum analyzer Part I Controller board
Spectrum analyzer Part II Phase Detector
Spectrum analyzer Part III ADC 16
Spectrum analyzer Part IV Logarithmic Detector

Spectrum analyzer Part V Master Oscillator

DDS Module

Tuesday, 9 July 2013

Spectrum analyzer Part IV Logarithmic Detector

Description (copied from Scotty's web page)

The 8306 Log Detector Module has a dual function.  It is used as a detector to convert RF power to DC voltage (RSSI).  And, it is used as a high gain, RF limited amplifier.
The module has an input impedance of 50 ohms (J1) and a bandwidth of  3 MHz to 160 MHz.  
The RSSI dynamic range is -90 dBm to +10 dBm, with a DC output of +0.4 volts to +2.4 volts, on J2, "MAGVOLTS".  The Limited I.F. Output (J3) is a 50 ohm source with 50 mv peak to peak output.  
The limiter input dynamic range is from -77 dBm to +10 dBm.

Log Detector Rev 0


Build process

So far the Log Detector was one of the easiest modules to solder.
The only problem was to get hold of T1 but fortunately Coilcraft was kind enough to send me two pieces.

Once the module is thoroughly tested and confirmed working it is very important to shield this kind of units properly. 

 Links:
Spectrum analyzer Part I Controller board
Spectrum analyzer Part II Phase Detector  
Spectrum analyzer Part III ADC 16

Log Detector Module
 

Spectrum analyzer Part III ADC 16

There are two Slim modules for the ADC section.
Their main difference is resolution one delivers 16 bit the other module 12 bit.
Although the 12 bit version is cheaper and has a way easier to solder footprint, I choose the 16 bit version.
 
 Description

The ADC-16 is a dual 16 bit, serial, analog to digital converter, using two AD7685's.  
There is no manual adjustment to set the A to D range.  It is not needed to obtain excellent resolution in the MSA and VNA systems.  Each ADC will digitize its input of 0 to 5 volts to a bit value of 0 to  65535 bits.  This equates to 76.3 uv per bit.
Both A/D's will capture, and clock out their data simultaneously. 


ADC 16 rev A