Jump to content

ezprobe, ez430 based logic probe

Recommended Posts

here is my entry to the december project of the month. comments welcomed.






this is a simple logic probe project based on TI Launchpad. i took advantage of a free offer on a couple of ez430s from TI in september 2010. they are very handy and fun in trying out small code snippets and watch the led blink. they had since been laying around my desk and i have to come up with something for them. and i want to stop people coming up and ask to borrow my "memory stick".


well, this is no memory stick, 16bit MCU w/ multi-channel ADCs, adaquate 2K programming memory and runs up to 16Mhz. all packed up with the debugging programming interface board in a nice usb device package.


my main design goal is to limit my intervention to the original ez430. in that i don't want do alter it too much physically and i want to retain it's programming / debugging function for other target board projects. all this while serve additional useful purposes.


this is a linux project, as usual, i had given attention with my best knowledge to make provisions so that it can be built under windows. however i do not have the time and resources to try out everything under windows.


most of my electronics projects are done on very small breadboards and i usually work on tight spaces (kitchen table, half a borrowed desk, etc). there are many instances that i need to check circuit logic levels and i've been using a multimeter (size of a brick) to check things out. it always annoys me as my projects are much smaller than my multimeter and i found it always gets in my way. i need an alternative, a small logic probe will do.


the ez430 is perfect for this task. to begin with, it's already shaped like a probe, i just need to add a nail and some leds. as i mentioned earlier, i want to make this project simple and non-destructive. and i made use of what's available already.


instead of building the project on a pcb / pref-board, i build this on a target msp430f2012 board, employing the 14 pin header thru holes as my prototyping area. this is where the tiny leds goes. i do not want to drill holes on the plastic casing, i don't want to run too many wire nor add additional contact points. all i need is a probe io contact and a button input for function select, plus gnd and vcc. the usb connection looks perfect for this task. i will power the probe via the usb (the programmer circuit will regulate a around 3v potential for me) and use the D+ and D- usb connects for my probe and switch.


since the ez430 is slave / client device, upon initialization, it won't do a thing except a pull-up on D+ (to indicate it's a "hi-speed" usb). i use the floating D- as my probe io and D+ as my tactile button input (i don't even need to setup a pull-up resistor for that, it's already there)


features and application


* supply from circuit via usb connector

* 3 operating modes rotating between logic read, pulse output, pwm output

* long button press (about 1.5 sec) rotates through the 3 operating modes

* p1.0 original green led as mode indicator, off - probe, on - output, blink - pwm


logic probe


* logic probe red - hi, green - low, none - floating

* logic probe red / green blinks on continous pulse reads > 100hz

* 4 yellow leds shows detected frequencies in 8 steps, blinking yellows indicate hi-range (i.e. step 5-8)

* shows detected pulse frequences for 100hz+, 500hz+, 1khz+, 5khz+, 10khz+, 50khz+, 100khz+, 500khz+

* for non-continous single pulse bursts, the red / green leds stays on and subsequent pulse counts are displayed incrementally on the leds, will count up to 8 pulse


continuous pulse output, frequency setting


* indicated by p1.0 original green led on

* 4 yellow leds shows output pulse frequencies in 9 steps, blinking yellows indicate hi-range (i.e. step 5-8)

* pulse frequences output for 100hz, 500hz, 1khz, 5khz, 10khz, 50khz, 100khz, 500khz, 1mhz

* short button press rotates the 9 different frequency settings.

continuous pulse output, pwm setting


* indicated by p1.0 original green led blinking

* same as previous operation mode, except pwm values are show (and be setup) instead of frequency

* 4 yellow leds shows output pwm percentages in 9 steps, blinking yellows indicate hi-range (i.e. step 5-8)

* pwm percentages for 0%, 12.5%, 25%, 37.5%, 50%, 62.5%, 75%, 87.5%, 100%

* short button press rotates the 9 different pwm settings.





source file




project page, construction details, schematics, etc.



[EDIT] source code and schematic added, update more correct schematic

Link to post
Share on other sites

Oooh! Making tools. My favorite!


How about using stranded wire for the jumpers, and plain old male/female headers for the connection? You could probably mount the female header pretty flat behind the USB connector, and just plug in the jumpers when needed.


What is the app you have running in the background, showing the waveforms? The note seems to say it's LaunchPad-based?


Keep up the high-quality work!

Link to post
Share on other sites



You could probably mount the female header pretty flat behind the USB connector, and just plug in the jumpers when needed.

if u mean connectors inside the casing (between programmer side and mcu target board), i will need special (and expensive) 0.05in connectors, will do it when i come across a right one.

if u mean the probe head (usb connector), again i tried standard 0.1in headers and i still found them too obstructive, but definitely i will take your advice and build a better probe-head. i did two and is still not satisfied.


What is the app you have running in the background, showing the waveforms? The note seems to say it's LaunchPad-based?

don't u recognized your own launchpad? :) , i am putting it in good use. it's a logic analyzer i pull up to show the ezprobe functionalities. they share very similar code (logic capture + signal generation), except the launchpad application does (1) add uart for host side visualization, (2) four channels instead of one. it's far from finish, just got the basics in, there is no control from host side and auto-frequency adjustment, the high side capture is not fast enough (yet). may be a january POM.


wonder if you actually work for TI in their microcontroller branch.

i wish, but they won't take me, all my works are crude w/o any safety considerations.


Just put in a tiny oled lcd on there, and guess what you have!

i actually has a 128x64 from ebay, it didn't work out, need a smaller one like 128x32, etc. had made provisions in the code and by changing the timer_a capture from just falling edge to both edges, pulse width can be captured easily. then i need to work out a board (size of the programmer board) and do smd pcb work. it will come in the future. but i do like the current one as it's easier and less expensive for anyone to build.


now it's your turns to submit yours.

Link to post
Share on other sites

thanks all

@naturetm, i am thinking to do video-out like yours via a probe-head w/ built in resistors. did u manage to free up some space from your demo? what are my chances if i want to make a "pong" clock?


the logic analyzer before releasing needs

. correct scale on the timing.

. move from 8mhz to 16mhz to at least capture 4 channel 1 mhz pulses correctly (my video shows misses above 500khz)

. takes command from host application.

. pulse sequence capture and memory (ie. capture a burst of spi / i2c activity for replay)


my major obstacle at the moment is memory (only 128 byte ram), u may think otherwise like what about streaming them to the pc when buffer is full. but remember u need the mcu to look at your channels levels all the time at 1mhz speed, doing uart in between will ruin the capture. so, it's going to need some magic (or some loss of precision / sampling capacity etc).


[EDIT] correct wrong ram size, anyway idea is that u need your stack and variables, there are few left for u to store things.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...