magnusk

Pipistrello - "Papilio on steroids"

66 posts in this topic

Pipistrello came about as I needed a board with HDMI interface, lots of RAM for buffering, high-speed USB for data streaming and SD-card for data storage. In the past I have used the Papilio boards and really like them but for this project I needed something like a "Papilio on steroids". The Papilio Plus sounded interesting but wasn't available when I started this project and did not have any of the needed interfaces on-board. The Avnet LX9-microboard was also a possibility but the limited user-I/O and the lack of HDMI on-board killed that idea.

So the only option left was to make my own board - basically merging the fpga and LPDDR from the LX9-Microboard with the formfactor, wing interface and tool-set from Papilio, then adding all the needed interfaces on-board (and then some more to make it more interesting). The biggest challenge was the 324-ball BGA package which forced me away from the hobbyist PCB vendors (like Seeed studio and OSH Park) to the more traditional (and expensive) PCB vendors that offers the PCB geometry needed for this board (5 mil trace width/spacing, 8 mil holes, 4-layes).

In my professional life I have used PCB Universe (http://www.pcbuniverse.com/) for many boards with great success and they have very reasonable prices and an on-line quote and ordering system so it's easy to place an order (disclamer: I have no business interest in PCB Universe, just a happy customer). The quote for this board was $450 for 50 boards, more than I like to spend but still a bargin compared to other options.

So far all circuits on the board have been tested OK except for the USB host interface which really need Linux up and running first. The board came out perfect - no cuts or jumpers needed so far.

pipi2-25.JPG

Read more about the board features here:http://pipistrello.saanlima.com

My plan is to make this an open-source project once all features on the board have been verified.

Magnus Karlsson

Saanlima Electronics

This post has been promoted to an article

1 person likes this

Share this post


Link to post
Share on other sites

Hamster's dvi-d test used 640x400 resolution, how of the capabilities of the chip will be used (if possible) to run full hd on this?

Will it be possible to reproduce full-hd video? (or hi-resolution games.. )

oh, saw this now:

some games one don't want in high-res of course, it takes away some of the charm. :)

btw, an question that is probably related to both Papilio and Pipistrello, the mounting holes, are they arranged on an 5mm grid? too much stuff around is created either without mounting holes (raspberry pi), or with random holes (arduino), and some have 5mm grid (netduino go), an standard on this makes it easier to reuse standard mounting plates, like Tamiya etc.

Share this post


Link to post
Share on other sites

btw, an question that is probably related to both Papilio and Pipistrello, the mounting holes, are they arranged on an 5mm grid? too much stuff around is created either without mounting holes (raspberry pi), or with random holes (arduino), and some have 5mm grid (netduino go), an standard on this makes it easier to reuse standard mounting plates, like Tamiya etc.

The mounting holes on the Papilio One are actually meant as "anchor" points for the Wings. The idea is to have the same hole on Wings, then a spacer can be placed between the Wings and the Papilio One and a nylon screw can be used to secure the Wing to the Papilio One. They can also be used as mounting holes for an enclosure or something, I'd use nylon screws though or something to prevent metal screws from rubbing off the solder mask and shorting traces.

With the Papilio Plus and Pro I put standard mounting holes on all the corners.

Another option is to get threaded spacers and superglue them to the bottom of the Papilio One.

Jack.

Share this post


Link to post
Share on other sites

I bought an bucket full of nylon spacers on ebay (well, atleast a lot of them), only use those, a bit safer than the metal ones.

Anyway, lot of stuff is created today without proper mounting points, which is sad, since it's very easy to short something. (Who have an clean desk without any tools?? :) )

Sorry to steal the thread for this :)

Share this post


Link to post
Share on other sites

It's a valid point, since the PCB clearly has enough room for at least 3 corner holes.

Anyway, I wonder whether or not the Plus' hardware already makes an HDMI wing feasible ?

Not that this board isn't really quite cool, only that some projects might not need all of those peripherals.

Share this post


Link to post
Share on other sites

I think the specs for HDMI make it hard to implement on a wing due to signal integrity issues such as trace lengths and drive impedances.

As the wing system hasn't been designed with HDMI in mind I don't think will give reliable quality results - HDMI/DVI requires over 1Gb/sec at 1080p

It might be possible to use lower resolutions just by hacking a cable apart a HDMI cable and using LVD drivers that are on the Spartan 3E...

Share this post


Link to post
Share on other sites

I've been meaning to give HDMI output a try on the Papilio Plus/Pro for months now, just never seem to find the time. I think we should be able to do lower resolution stuff with just a cut off cable and eventually a low res Wing.

Jack.

Share this post


Link to post
Share on other sites

Hello fuzzy,

Are you asking about news on the Pipistrello or the Papilio Pro? For the Pipistrello I don't know, the BGA footprint will make this board expensive to produce, it sounds like Magnus has some bare PCB's available still..

For the Papilio Pro, we just overcame the last technical hurdle, Macronix SPI Flash, so the board is ready to start the manufacturing process. I will be making a manufacturing package in the next week to submit to Seeed Studio. Hopefully we will see the Papilio Pro in a month or two.

Jack.

Share this post


Link to post
Share on other sites

Jack, just wondering if it would be commercially viable to strike a deal with the creator of the pipistrello and start offering a design based on that. The reason I mention that is because it seems that Magnus already has a working board layout that escapes the BGA324 footprint and connects to a SDRAM. From the picture, it also looks like he's taken care of the high speed aspect of the design (the squigly traces) by length matching the traces from the FPGA to the SDRAM.

Contrast this with the P.pro where there are huge differences in trace lengths to the SDRAM (just type "run length dq* a*" in eagle) where DQ0 has a trace length of 8.27mm but DQ8 runs at 19.95mm, more than double. This means that when trying to run the SDRAM at max speed, the signals on the data bus will arrive at different times. Same with the address lines. This will then limit the max speed you can run the SDRAM at reliably.

Additionally the LX6 does not have have a memory controller block due to the low pin count, I think from memory the MCB becomes availabe in BGA packages only so attaching a SDRAM to the LX6 means one has to program an MCB in HDL.

Finally, Magnus has also hooked up a FT2232H to the FPGA, which was another feature request by some users but you didn't have enough pins on the P.pro.

Share this post


Link to post
Share on other sites

Hi alex,

I'm currently working with PPro with SDRAM working at 96MHz, with large burst sizes. So far it seems to do the job well. Indeed matching trace lengths is a good thing, but often you have to compromise some parts of the design, because they can make it's price rise.

You can also eventually "fix" this from within the FPGA, either adding IDELAY and/or adding LUT before the outputs. It's tricky, but eventually doable.

Alvie

Share this post


Link to post
Share on other sites

Hi Alex,

I found a reference on the web that signal skew is 0.18ns per inch of trace. Although it isn't perfect, with this difference in length the skew will be 0.1ns, or about 2% of the DDR transfer cycle (or 1% of the control cycle). Although not perfect, I don't see it as being an issue.

Maybe you could help Jack out with a rev 2.0 where the traces are more even?

In some ways I see the using an MCB could be considered 'cheating'. I don't know about you, but I play with FPGAs for the challenge of making things like this work! I've learnt more about memory over the last few months than I ever new existed...

Share this post


Link to post
Share on other sites

line lengths, mcb's or not, but having an LX45 would be an killer!!, but unless someone can come up with an excellent (and cheap) way of cooking BGA's I guess the current fpga's have to be on the boards..

Share this post


Link to post
Share on other sites

Of course Mike, I don't disagree, if your purpose is to learn to drive SDRAMs, writing your own controller would be a super fun project. Having said that, if you didn't care much about writing your own MCB, having a ready made one on board wouldn't hurt either :)

Help Jack with 2.0? Sure, I'm all for it. Look, I think I came across wrong in my earlier post, I wasn't meant to be critical of P+, my point was this:

* Magnus has already done all the hard work

* Magnus said he was planning to open source the design

* The Pipistrellio is pretty much already in a P+ physical format (compatible headers/size)

* The Pipistrellio has things people have asked for (FT2232H, more pins, HDMI - which due to high speed design requirements, is best left on board rather than on a wing).

* Jack has experience in getting things manufactured/assembled

I guess, all I was trying to say was, it seemed to me like a good idea if the best features of Pipistrellio and P+ were merged into one super awesome board available for purchase preassembled for a reasonable price. Pipe dream? Maybe, but dreams are free :)

A

Share this post


Link to post
Share on other sites

Hey guys,

I guess there are two things to talk about here, I like the idea of bringing the Pipistrellio to market but it's just not feasible for me to do so.

1) Manufacturing the Pipistrellio - I have actually gone down the BGA/Multi-layer board path in the past with the Papilio RAM design. The Papilio FPGA Shield was an attempt to get funding to bring that design to market. I figured that I needed at least $10K to be able to manufacture the BGA design. Boy was I wrong, I'm actually very lucky that Kickstarter project did not get funded for $10K. I went forward with trying to get the Papilio RAM design manufactured and it just wasn't economically feasible for a small company like Gadget Factory. There is not enough volume of Papilio sales as it is to bring the costs of a BGA board down to an affordable price. I don't remember the numbers exactly, but ball park of what I remember is that the down payment for the smallest order of boards was something like $20K. The total commitment required was around $50K, and the worst part is that since this was for the smallest batch of boards they were willing to do it meant that the per board price was crazy high. In order to make any profit on the board I would have needed to sell them for around $150, which is a price the market would not support... Ever since that I have steered clear of BGA, Gadget Factory needs a LOT more resources before we can invest in BGA boards. It's a shame because I really, really want to design a ZYNQ board...

2) Signal Integrity of the Papilio Pro board - I actually put a LOT of time and effort into figuring out the signal integrity issues with adding a SRAM or SDRAM chip. I read every publication I could get my hands on, have run simulations in HyperLynx, and have done several prototype runs prior to the Papilio Pro design. SI is a complex issue, but to boil everything down there is a very simple set of rules to follow for a double sided "micro-strip" board like the Papilio Pro. If you keep all your traces less then 2" and route them over an unbroken ground plane then you will take care of most SI issues. Take a look at this publication and read the section "Do I need impedance controlled routing?", it shows the calculation to determine that traces less then 1.95" are not considered transmission lines. I have found the same thing in countless other publications as well, everything I have researched and tested supports the Papilio Pro design... I think we are going to be fine with the existing Papilio Pro design. We have done pretty extensive testing with the SRAM on the Papilio Plus, and the Papilio Logic. I have run the Sump Logic Analyzer code at full speed, 100Mhz with no problems on the Papilio Logic design and Alvie has the Papilio Pro and Papilio Plus designs running at 100Mhz.

Oh, the other issue is the FT2232H chip. I used a FT232H chip in the Benchy design as a way to get high speed comms and to lower the overall price of the Papilio. If the Benchy design works out with the FT232H chip then I will probably make future Papilio designs use that chip instead.

Thanks!

Jack.

Share this post


Link to post
Share on other sites

Oh, the other issue is the FT2232H chip. I used a FT232H chip in the Benchy design as a way to get high speed comms and to lower the overall price of the Papilio. If the Benchy design works out with the FT232H chip then I will probably make future Papilio designs use that chip instead.

but the FT232H is an single channel chip?, I havent managed to get up to speed yet, but as I understand it, with the dual chanel, you can be connected even if you upload sketches and such?, Like, on the Arduino, you cannot have an rs232 client attached for debuging at the same time as you upload code to the device, so it is (for me) more hassle to disconnect, connect, and such when testing. From what I saw of your videos, it seems like the rs232 client can stay connected on Papilio, that feature, if it is like I suspect, I wouldnt miss..

Share this post


Link to post
Share on other sites

That's a good point, I'll have to double check this while I do my testing with the Benchy. But I think the chances are good that you will not have to keep reconnecting your serial port connection every time you reprogram. It should just be a matter of the papilio-prog application changing the port type to MPSSE during jtag programming and then changing it back to UART when done. From what I've seen in the past that doesn't make the serial port go away so it should not even be noticeable to an end user. But it would be a huge hassle if you do have to do that so I will keep my eye open for that.

Jack.

Share this post


Link to post
Share on other sites

Of course Mike, I don't disagree, if your purpose is to learn to drive SDRAMs, writing your own controller would be a super fun project. Having said that, if you didn't care much about writing your own MCB, having a ready made one on board wouldn't hurt either :)

Help Jack with 2.0? Sure, I'm all for it. Look, I think I came across wrong in my earlier post, I wasn't meant to be critical of P+, my point was this:

* Magnus has already done all the hard work

* Magnus said he was planning to open source the design

* The Pipistrellio is pretty much already in a P+ physical format (compatible headers/size)

* The Pipistrellio has things people have asked for (FT2232H, more pins, HDMI - which due to high speed design requirements, is best left on board rather than on a wing).

* Jack has experience in getting things manufactured/assembled

I guess, all I was trying to say was, it seemed to me like a good idea if the best features of Pipistrellio and P+ were merged into one super awesome board available for purchase preassembled for a reasonable price. Pipe dream? Maybe, but dreams are free :)

A

Alex, no worries, I didn't take your questions about the Papilio Pro design as being critical, I just want to make sure any concerns about the design are addressed. I like the Pipistrello too, if BGA boards were a possibility then I would make something like it, but with the ZYNQ chip. :)

Jack.

Share this post


Link to post
Share on other sites

Thanks, Jack. I had no idea of the costs involved in BGA and the prices you mentioned sound pretty astronomical and would not expect you to make that investment, of course, for no return.

Share this post


Link to post
Share on other sites

Jack, when you say "boards" (talking about manufacturing costs), you're talking about assembly right?

I ask as the "quote for this board was $450 for 50 boards" sounds quite affordable to home-hackers if you're ready to spend a dozen weeknights with tweezers, balls, a skillet and test probes for one working board.

I'm a complete novice, and just curious. Is there more difficulty in placing BGA devices? Testing? Re-replacing costs? The devices come "pre-balled" right?

You did some BGA assembly yourself... Which bit is the hard bit?

Share this post


Link to post
Share on other sites

Yes, that is in regards to assembly. The cost of a multi-layer board gets very affordable once you get over 100 pieces. It's automatic placement of BGA parts that gets expensive. I have done BGA assembly at home,

. I briefly considered manufacturing my own BGA boards, but the big problem is you only get one shot at it. I have a pick and place machine and I used to manufacture all of the Papilio One boards, so I know that there is a very good amount of boards that need to be reworked. With a TQFP package it is no big deal, you can take them off and resolder them with no problems. But with a BGA if you don't get it perfect the first time you are in for a TON of very labor intensive work to clean up the BGA pads, reball the BGA, try it again. I got out of manufacturing P1 boards because it is just too much for a single person to do, run the business, manufacture boards, fulfill orders, try to design new stuff... With a BGA board it would be even worse!

Of course, doing it at home would be a fun undertaking, as long as you don't mind maybe having to try it a couple times...

I would be willing to see if Magnus wants to sell his Pipistrello boards through the GF store for DIY'rs.

Jack.

Share this post


Link to post
Share on other sites

It would be a pity if this board would not be available.

I would really like to buy one, because it fits exactly my needs. I already have a Nexys 3 board which has a 16MB PSRAM on it, but it is too slow for using it as a VGA framebuffer :-/ And finding a board with a Spartan 6 for VGA/DVI/HDMI output and a fast and sufficiently big RAM (>= 32MB, >= DDR) for an affordable price is not exactly easy.

I'm even member of a big hackerspace here in Germany, but nobody of us did ever even think about handling BGAs by ourselves...

Share this post


Link to post
Share on other sites

Magnus dropped a hint that he assembled it in his basement... his basement must be tricked out!

Share this post


Link to post
Share on other sites

Magnus dropped a hint that he assembled it in his basement... his basement must be tricked out!

Yeah, a packet of matches and a metric shit-tonne of patience. ;)

Share this post


Link to post
Share on other sites

I already have a Nexys 3 board which has a 16MB PSRAM on it, but it is too slow for using it as a VGA framebuffer

Too slow ? I think it could manage 80MHz if I recall well. That gives you 160MB/Sec. For an 8-bit output you can manage a very good pixel clock. Up to 80MHz pixel clock (note - indeed you can attain more than this because of H/V blanking) for 16-bit output. Since you also need to write I'd say up to 40MHz pixel clock is doable.

The trick (I use) is to use a FIFO, which fills from bursts from the RAM and then the other end feeds the VGA adaptor. My VGAZX uses this technique.

I'll work on a 640x480x8 soon, using this technique also and using the SDRAM @ 96MHz. Pixel clock is 25MHz. It will feature an wishbone master interface to access the RAM framebuffer.

Alvie

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now