NEW PARALLAX PRODUCT: Propeller Backpack (Developer's Notes)

Parallax has just announced the Propeller Backpack. You can read all about it in the link and downloadable manual, so there's no point rehashing those details here. I just wanted to add some notes as to how this product came about and what design criteria were brought to bear during its development.
Almost two years ago Ken Gracey approached me with an idea for a compact video terminal module for BASIC Stamp programmers that would use the Propeller and allow PBASIC programs to display character data on a video screen. It seemed like a great idea, and we decided it needed to be a standard three-pin device that could be powered by a servo header, with communication occurring over the signal line.
Shortly thereafter, Ken was doing some experimentation with data communication using his 2-meter ham transceivers with external modems, and I suggested that the Propeller should be able to handle the modem functions on its own. In the process of developing the Bell 202 modem software, I discovered that, with proper coupling, part of the Prop's typical video output DAC could be used in reverse as an input for audio signals. Thus began the Propeller Backpack's "mission creep".
In order to accommodate the requirements of a fully-functioning modem, I needed audio output in addition to the input, along with a push-to-talk circuit for keying the transmitter. So I decided a stereo phone jack was the most approachable and compact way to provide this interface. Since there is an abundance of easily-obtained phone-to-RCA adapters, this seemed like a reasonable route to take, without compromising the original video objective.
With the stereo phone jack came the notion that line-level stereo audio ought to be offered as well. The video DAC was coerced into this function by adding a switchable filter cap, along with an output cap (which can be shorted via an onboard jumper to maintain a video signal's integrity).
Adding the second channel also got me thinking about video overlays. The stumbling block for overlays is usually synchronization. The characters that are overlain have to synchronize with the input signal so they stay in one place on the screen. Synchronization is usually done with an external IC, like the LM1881. I didn't want to add much to the board's cost for this function, nor to its size. So I had to find a way for the Prop to derive sync information from the incoming signal on its own. What resulted was an RC circuit, in which a series cap is charged (via a DUTY-mode counter output) to just above the Prop's logic threshold during the incoming video signal's "front porch". Then, when the sync tips arrive, the input will read low. It's a bit of a chicken-and-egg thing to get started, but it's able to lock within a frame or two and will stay locked thereafter. The other necessary addition was a programmable pathway from video input to video output to allow the incoming video to display on the output, keyed by the overlain characters with various degrees of transparency. This was satisfied via back-to-back MOSFETs gated by a counter's resistor-coupled DUTY-mode output (filtered by the gate capacitance) and enabled by a second onboard jumper.
Throughout the development, I wanted this module to accept (and leverage) daughterboards designed for the MoBoStamp-pe. That way, it could be expanded to perform other functions — even custom ones made possible by the the Proto-DB. This entailed the addition of the Hirose 12-pin motherboard connector, which provides Vdd, +5V, Vss, and Prop pins A0-A7. To be compatible with the MoBo, four of these pins are pulled up to Vdd, and two are also connected to analog inputs. Having pins A0-A7 available in this fashion makes the Backpack plug-compatible with the PropCAM (which I now have new incentive to finish
). To accommodate the PropCAM's DUTY-mode grayscale output, I had to add another switchable cap to the video DAC to filter out the DUTY doody.
The Backpack comes preloaded with the originally-conceived PBASIC-compatible video terminal driver. Although it includes a four-pin header for programming via a Prop Plug, I wanted BASIC Stamp users to be able to upload canned firware (or their own Spin programs) without having to buy a Prop Clip. This entailed a monitor program/bootloader which can accept binary uploads via the 3-pin "servo" header. Because the monitor requires EEPROM space and must always be the first program to run, the beginning of a user's program is stored in the first few hundred bytes of the EEPROM's second 32K bytes. This requirement also entailed writing a loader for the PC that would program and interact with the BASIC Stamp to do the uploading. As a bonus, I included my CLEAN software for compacting Spin programs. (Its use is optional.) The loader can also be used with the Prop Plug if one wishes.
At this point, the hardware layout was done. I don't think I could fit another resistor on this board if I had to. So I had a fifth (!) batch of boards made that incorporated all the design additions, stuffed them with parts, wrote a couple demos, and sent them to Parallax for evaluation. I had named the board the "HoboPROP", which was a double entendre: "hobo" because it's designed to hitch a ride on another micro but also because, with its single daughterboard connector, it's half of a MoboPROP (a Propeller motherboard still in development). I really liked that name — still do, in fact — but Parallax hated it! After much discussion, Ken came up with "Propeller Backpack", which I also liked and agreed to.
Once approved, the layout was modified with the new name, and some silkscreen text was moved to avoid vias. Then I had to do the manufacturing documentation and build a test jig so the modules could be built and tested at Parallax's facility in China. Then it was, hopefully, just a matter of waiting until first articles arrived, sign off on them, and move to final production.
One necessary task that got left out of this whole process was the user documentation. My usual course of action is to provide that documentation with the protos. For some reason, that didn't happen with the Backpack. It may have had something to do with timing and getting production started as soon as possible; I can't remember. I just know it was a mistake because, despite having other things to work on, the spectre of an onerous writing task shadowed me all last summer, and I hate writing documentation. But the one thing I couldn't let happen would be for the products to show up and languish in inventory while I finished it.
Meanwhile, I was in communication with the folks in China, answering questions and helping to deal with some testing issues that cropped up. Without going into detail, let me just say that the same adage that applies to legislation and sausages could also apply to producing electronics — regardless of where it takes place. But Parallax has a great team over there, and they've worked really hard to meet the highest expectations for this module. I did finally get the documentation done in time for the rollout, and it's a product I'm extremely happy with. I hope everyone who tries the Propeller Backpack will be, too!
Many, many thanks to Ken Gracey and the entire Parallax staff for being the supportive (and patient) development partners that I've come to enjoy over the years! A project like this could never have come about without their backing and indulgence.
-Phil
_
Post Edited (Phil Pilgrim (PhiPi)) : 12/8/2009 2:37:51 AM GMT
Almost two years ago Ken Gracey approached me with an idea for a compact video terminal module for BASIC Stamp programmers that would use the Propeller and allow PBASIC programs to display character data on a video screen. It seemed like a great idea, and we decided it needed to be a standard three-pin device that could be powered by a servo header, with communication occurring over the signal line.
Shortly thereafter, Ken was doing some experimentation with data communication using his 2-meter ham transceivers with external modems, and I suggested that the Propeller should be able to handle the modem functions on its own. In the process of developing the Bell 202 modem software, I discovered that, with proper coupling, part of the Prop's typical video output DAC could be used in reverse as an input for audio signals. Thus began the Propeller Backpack's "mission creep".
In order to accommodate the requirements of a fully-functioning modem, I needed audio output in addition to the input, along with a push-to-talk circuit for keying the transmitter. So I decided a stereo phone jack was the most approachable and compact way to provide this interface. Since there is an abundance of easily-obtained phone-to-RCA adapters, this seemed like a reasonable route to take, without compromising the original video objective.
With the stereo phone jack came the notion that line-level stereo audio ought to be offered as well. The video DAC was coerced into this function by adding a switchable filter cap, along with an output cap (which can be shorted via an onboard jumper to maintain a video signal's integrity).
Adding the second channel also got me thinking about video overlays. The stumbling block for overlays is usually synchronization. The characters that are overlain have to synchronize with the input signal so they stay in one place on the screen. Synchronization is usually done with an external IC, like the LM1881. I didn't want to add much to the board's cost for this function, nor to its size. So I had to find a way for the Prop to derive sync information from the incoming signal on its own. What resulted was an RC circuit, in which a series cap is charged (via a DUTY-mode counter output) to just above the Prop's logic threshold during the incoming video signal's "front porch". Then, when the sync tips arrive, the input will read low. It's a bit of a chicken-and-egg thing to get started, but it's able to lock within a frame or two and will stay locked thereafter. The other necessary addition was a programmable pathway from video input to video output to allow the incoming video to display on the output, keyed by the overlain characters with various degrees of transparency. This was satisfied via back-to-back MOSFETs gated by a counter's resistor-coupled DUTY-mode output (filtered by the gate capacitance) and enabled by a second onboard jumper.
Throughout the development, I wanted this module to accept (and leverage) daughterboards designed for the MoBoStamp-pe. That way, it could be expanded to perform other functions — even custom ones made possible by the the Proto-DB. This entailed the addition of the Hirose 12-pin motherboard connector, which provides Vdd, +5V, Vss, and Prop pins A0-A7. To be compatible with the MoBo, four of these pins are pulled up to Vdd, and two are also connected to analog inputs. Having pins A0-A7 available in this fashion makes the Backpack plug-compatible with the PropCAM (which I now have new incentive to finish

The Backpack comes preloaded with the originally-conceived PBASIC-compatible video terminal driver. Although it includes a four-pin header for programming via a Prop Plug, I wanted BASIC Stamp users to be able to upload canned firware (or their own Spin programs) without having to buy a Prop Clip. This entailed a monitor program/bootloader which can accept binary uploads via the 3-pin "servo" header. Because the monitor requires EEPROM space and must always be the first program to run, the beginning of a user's program is stored in the first few hundred bytes of the EEPROM's second 32K bytes. This requirement also entailed writing a loader for the PC that would program and interact with the BASIC Stamp to do the uploading. As a bonus, I included my CLEAN software for compacting Spin programs. (Its use is optional.) The loader can also be used with the Prop Plug if one wishes.
At this point, the hardware layout was done. I don't think I could fit another resistor on this board if I had to. So I had a fifth (!) batch of boards made that incorporated all the design additions, stuffed them with parts, wrote a couple demos, and sent them to Parallax for evaluation. I had named the board the "HoboPROP", which was a double entendre: "hobo" because it's designed to hitch a ride on another micro but also because, with its single daughterboard connector, it's half of a MoboPROP (a Propeller motherboard still in development). I really liked that name — still do, in fact — but Parallax hated it! After much discussion, Ken came up with "Propeller Backpack", which I also liked and agreed to.
Once approved, the layout was modified with the new name, and some silkscreen text was moved to avoid vias. Then I had to do the manufacturing documentation and build a test jig so the modules could be built and tested at Parallax's facility in China. Then it was, hopefully, just a matter of waiting until first articles arrived, sign off on them, and move to final production.
One necessary task that got left out of this whole process was the user documentation. My usual course of action is to provide that documentation with the protos. For some reason, that didn't happen with the Backpack. It may have had something to do with timing and getting production started as soon as possible; I can't remember. I just know it was a mistake because, despite having other things to work on, the spectre of an onerous writing task shadowed me all last summer, and I hate writing documentation. But the one thing I couldn't let happen would be for the products to show up and languish in inventory while I finished it.
Meanwhile, I was in communication with the folks in China, answering questions and helping to deal with some testing issues that cropped up. Without going into detail, let me just say that the same adage that applies to legislation and sausages could also apply to producing electronics — regardless of where it takes place. But Parallax has a great team over there, and they've worked really hard to meet the highest expectations for this module. I did finally get the documentation done in time for the rollout, and it's a product I'm extremely happy with. I hope everyone who tries the Propeller Backpack will be, too!
Many, many thanks to Ken Gracey and the entire Parallax staff for being the supportive (and patient) development partners that I've come to enjoy over the years! A project like this could never have come about without their backing and indulgence.
-Phil
_
Post Edited (Phil Pilgrim (PhiPi)) : 12/8/2009 2:37:51 AM GMT
Comments
Hmmm...video overlays for robotics telepresence.
Kerry
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"Heaven help me Marge, I'm just not that smart." - Homer Simpson
I especially like how you pulled off the video overlay!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.mikronauts.com Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
Morpheusdual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory IO board kit $89.95, both kits $189.95
Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
Bean will be jealous
Jim
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Composite NTSC sprite driver: Forum
NTSC & PAL driver templates: ObEx Forum
OnePinTVText driver: ObEx Forum
Eric,
The simplest method, which uses the "traditional" video DAC and provides zero-crossing info only, is to drive one of the 560R pins high, the other low. Let the other two pins float, and use one of them as an input. If you capacitively couple the summing junction to an audio signal, the 560/560 divider will charge the cap to the Prop's logic threshold, so any small analog excursions about the zero crossing will register as changes in logic level at the input. This is, effectively, a clipper; but it's adequate for things like modems. For analog input, you can use the 1.1K resistor as a counter feedback. The input cap has to have a fairly high value due to the low impedance of the summing junction. I used a 4.7uF 25V ceramic. This was a compromise between high capacitance and high WVDC, without being polarized.
The Propeller Backpack's video DAC is a little different than the traditional one, in an effort to keep the output impedance equal to 75 ohms. But the principles are the same. The Backpack documentation explains it in a little more detail (with schematic) than I did here.
-Phil
Post Edited (Phil Pilgrim (PhiPi)) : 12/8/2009 5:10:03 AM GMT
Thanks for sharing the story, and we're thankful to have the opportunity to work with you on this project and many others.
Readers could fill in the blanks about the challenges of manufacturing this product in China. Everybody's effort to keep the quality, test procedure, and final product in tact must be recognized. . .especially our Chinese engineers. They understand our desires really well at this point because they stick with us day and night to get us where we all want to go.
You pointed out that taking the idea all the way to production is another story, and it is! In so many cases, the prototype is about 90% fun and 10% of the total effort. Taking the idea to production switches the ratio to the reverse: 90% work and 10% fun. Makes me think that any product an engineer undertakes he must really appreciate to finish the design. By the time some products get to production it's possible that the engineer wants far less to do with it than when the idea was being hatched. When ideas are hatched in Parallax for products I often ask the idea person "if we do that, do you REALLY want to see it through to completion? I don't care how much profit it generates, or how much interest it has among our customers. . . but we need to know that you're really interested in this product". And if the product gets created then it follows the engineer around for his career, which is also interesting. I've seen a few EOL situations that included a small office party.
Ken Gracey
Your post provides a nice insight to understand the design philosophy behind the backpack.
I especially like your use of the stereo connector for multiple uses. As you said, the RCA adapter plugs are readily available.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)
· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
Adding to Ken's comments, I can't emphasize enough the proficiency, patience, and perseverence displayed by Parallax's engineering staff in China to work through this process with me. Without their expertise, testing, detailed feedback, and drive to make it all come together, this project would be stuck in limbo.
-Phil
Post Edited (Phil Pilgrim (PhiPi)) : 12/8/2009 8:35:01 AM GMT
In the documentation you state,
"The Propeller Backpack can be plugged into a solderless breadboard like so:"
Are the plug to breadboard pins "generic" 0.1" male square headers? If so, this won't work. Standard square 0.1" male headers don't work with plug-breadboards (I've tried many), unless you want to damage the breadboard (unreliable connections after with standard wire sizes). I've been searching for ages for a solution for this. Machine-pin headers, lead-frame, pins on and on. I've never been able to find a solution. When I get "breakout" boards from the likes of SparkFun, they typically do not supply headers,. thank goodness, I just solder some wires into the pads and now I can move the breakouts between plug-breadboards. But this doesn't work well with right angled pin-outs as required by your board.
Rgds, David
Wow, you've really packed a lot into a small package. I suspect most non prop users will go straight for the video terminal functions.
I have looked through some of the documentation, and been able to see on the pdf's some examples of what the overlay looks like. (SWEET)
I would like to see some examples of what a BS2 / Arduino user could output to a monitor with this, having no prior spin/propeller knowledge.
I Looked but I couldn't find any pics/vids.
Thanks,
Rick
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
NYC Area Prop Club
Prop Forum Search (Via Google)
·
Oh,yeah!
[noparse][[/noparse]quote] When ideas are hatched in Parallax for products I often ask the idea person "if we do that, do you REALLY want to see it through to completion?
Ken Gracey
Well, that surely beats the "You vill make ziss und make if fasst, schmarty!" I've usually come across. Then again, few companies are secure enough to not need a new product/feature every year. (The "me-too" syndrome: our competitor has it; we MUST have it!")
--Rich
Awesome product! Looking at the documentation it looks even more featured than the prototype I saw a year ago!
Is there a chance you *might* release the firmware as .spin down the road? I believe this is the first time
I've seen "binaries" released with a Parallax sold product.
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?
Visit the: The Propeller Pages @ Warranty Void.
Johnn Abshier
TonyF
Also, the terminal shows colors, but for overlay, it would be grey scale or just Black/White?
I guess one could rewrite the firmware on the Prop to do whatever.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Jim Fouch
FOUCH SOFTWARE
Bean.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1st rule of finance...Don't lose money.
Never be ashamed of making an honest·profit.
Live within your means...Make do, or do without.
·
The terminal firmware is documented in the board doc, starting on page 4, along with code examples and output illustrations. I also posted a simple "Hello, world!" example in the BASIC Stamp forum here. The firmware uses my tv_wtext object.
The reason for the binaries is that I though they might be less intimidating to BASIC Stamp users than Spin source code. Also, multiple objects can be packed into a small .bin file without those users having to create a special Propeller jobs directory in which to unpack a zip archive. (I've attached the monitor and terminal source archives below.)
I haven't yet. I have an XBee daughterboard in the works for the Backpack/MoBoStamp-pe, so that would be an interesting experiment.
The character overlay (no graphics as yet) is custom written for the backpack and doesn't use the standard tv.spin family of video objects. The overlay characters are black/white/gray with various background shades and transparencies. Adding color to overlay characters is difficult because you have to sync to the incoming signal's color burst to keep the colors right. I haven't (yet) figured out how to do that.
Thanks, Terry! And, of course, everything is open and MIT licensed, so you're welcome to use the technique in your own products.
-Phil
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Signature space for rent!
Send $1 to CannibalRobotics.com.
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
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)
· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
Very good point, Ken. Dealing with a lot of different board designers over the years I have learned one thing: Some PCB designers focus only on the design, not the build. This is where the term DFM comes into play (Design For Manufacturability). When a board is laid out correctly upfront, switching from prototype to production is seamless. One of the DFM specs I follow is frequently violated by my customers' board designers. (my employer's customers I should say, not mine(WBA))
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Andrew Williams
WBA Consulting
WBA-TH1M Sensirion SHT11 Module
Special Olympics Polar Bear Plunge, Mar 20, 2010
Is this and a handset cable all I need to implement your Bell 202 modem?
Thanks,
Doug
I've not tried to interface it to a phone, only to a radio (which required just the cable). So I'm not sure whether the Backpack's audio I/O would be compatible (signal level, impedance, isolation) with a handset cable or not.
-Phil
Are there any interesting ideas/products that you are thinking about now ?
Without letting the cat out of the bag.
Thanks,
Doug
Post Edited (hinv) : 2/16/2010 12:07:42 AM GMT