Awesome debugging tool for the propeller.
Section8
Posts: 1
Hi all,
I've been struggling with my project all weekend trying to add an lcd and get it working. The annoying part was that the display would mostly work fine, but some commands such as positioning the cursor would make it go nuts.
It wasn't 'til I'd run the code against the viewport tool hannoware.com/viewport/ that I noticed that setting one of the output pins high was cause two pins to change value.
After retracing those pins to my lcd board I discovered a tiny and nearly impossible to see solder bridge. I only wish I'd run viewport sooner.
Anyway, just wanted to let people know about this great tool that is worth the price.
I've been struggling with my project all weekend trying to add an lcd and get it working. The annoying part was that the display would mostly work fine, but some commands such as positioning the cursor would make it go nuts.
It wasn't 'til I'd run the code against the viewport tool hannoware.com/viewport/ that I noticed that setting one of the output pins high was cause two pins to change value.
After retracing those pins to my lcd board I discovered a tiny and nearly impossible to see solder bridge. I only wish I'd run viewport sooner.
Anyway, just wanted to let people know about this great tool that is worth the price.
Comments
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Harley Shanko
I have been considering ViewPort for a while.
I have a need to debug a serial based device that uses the standard TX and RX lines of the propeller.
When I purchase ViewPort, will I be able to debug serial data? Stuff like watch the memory of the buffer I define and the Head and Tail variables.
I am concerned because the USB and the serial share the same pins.
Does ViewPort cache data and then send it or can I do a breakpoint and switch from my internal serial handler to the ViewPort cog?
Any thoughts would be helpful.
ED
I actually had a very similar experience with ViewPort when I used it to debug my DanceBot while it was balancing a flute of champagne in an exhibit. For some reason the robot's position as sensed by the quadrature encoder drifted over time- I couldn't figure out why. A quick session with ViewPort revealed that one of the sense pins had an intermittent connection. Would have taken me forever to find it without the logic analyzer and "monitor values" capabilities of ViewPort.
I initially built ViewPort to support my own hobbies but it's now my full-time business. I love hearing how people use it- here are some of my favorites:
- Volkswagon's future car project
- Paul's measurement of molecular drift using a chopper wheel
- Curtis' scanning of ancient coins using an eddy current sensor
- Harley's project to build a z80 with the Propeller and TTL logic
- a project to optimally charge a battery with the fuzzy logic engine
- Bob's add-ons, including a scripting engine and event-driven logic analyzer
- a project which uses the fuzzy logic engine to control the depth of a model submarine
Would love to hear how others are using it!
Harley- great to hear from you again- has it really been 2 years? How's your z80?
Ekeefe,
Feel free to download the 30 day trial of ViewPort here: hannoware.com/viewport There are a ton of resources there, including manual, videos (including my Google Tech Talk) development kits and more.
Yes, ViewPort includes a "QuickSample" object which let's you capture the state of the 32IO pins at up to 80Msps. ViewPort displays the data in a "Logic Analyzer" view with triggers, cursors and timescales to help you analyze data. You can also "monitor" variables, you do that by "vp.share"ing a block of memory. That data will be transferred continually to the PC at up to 2Mbps where you can view it in different graphs- "Oscilloscope" to measure value vs. time, XY mode to compare the value of 2 variables, and Spectrum Analyzer to analyze the frequencies that make up a signal. You can also "change" variables, using controls like dials, scrollbars and textboxes...
By default ViewPort uses pins 30 and 31, the same that are used to program the Propeller over the USB cable. So, in a typical session your program is loaded to the Propeller, your program then configures how ViewPort should display data, and then data is continually sent full duplex over that USB connection.
Not sure what you mean by "switch from my internal serial handler to the ViewPort cog?", can you elaborate?
Hanno
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Co-author of the official Propeller Guide- available at Amazon
Developer of ViewPort, the premier visual debugger for the Propeller (read the review here, thread here),
12Blocks, the block-based programming environment (thread here)
and PropScope, the multi-function USB oscilloscope/function generator/logic analyzer
What I have is a device that receives constant serial data through the TX and RX pins. I seem to be receiving a few dropped bits in the communications.
What I am looking for is a way to view the internal RAM of the propeller.
Right now I am using an LCD to display the data. This requires a bunch of processing to get it into a form suitable for the LCD. The data I am receiving is HEX, not string. $00 is a valid piece of data and not a string terminator.
I am hoping there is a way to use ViewPort to view the internal data.
Correct me if I am wrong, but my concern is that Viewport also uses the TX and RX lines for its PC interface.
Is there a way that my program and ViewPort can share these lines? How would I set this up in my code and/or ViewPort?
Is it possible to do what I need to do with ViewPort?
Hope you have good news.
Thank you,
ED
ViewPort does need two pins to communicate with the PC. By default these are the same pins (30 and 31) which you use to program the Propeller with the USB serial connection. However, you can change those pin by changing the TX and RX constants at the top of the "conduit.spin" object in the ViewPort folder. So, unless you're using all 32IO pins, this should work for you.
Hanno
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Co-author of the official Propeller Guide- available at Amazon
Developer of ViewPort, the premier visual debugger for the Propeller (read the review here, thread here),
12Blocks, the block-based programming environment (thread here)
and PropScope, the multi-function USB oscilloscope/function generator/logic analyzer