In the matter of hours latest and final design with all hardware problems found before removed will be sent to production. This time I have done much better job in creating 3D model of the board by using STEP models.
Next logical step was to send few cards to other developers inside Apollo development team. This will speed things up lot more because so far I was the only one in the team who had actual hardware. Working in the dark for other developers was nightmare and I was stuck with constant testings and bug hunting with the Apollo core itself. With my limited knowledge I was able to help to some point but I was frustrated because I didn't had much time left for other things, like finishing final version of the Vampire 600 V2 board. Now, when they received their packages team can work properly and I can focus on sending latest design into production. I have sent boards to BigGun, ceiach, ShK and cgugl. Just to mention that this board will never enter serial production. It will be used only for development purpose.
Board sent to cgugl.
Board sent to ShK.
But this article is really about something else :) Kipper2k man from cold, cold Canada done some amazing work with current design in just two days. After me sending him design files I was so surprised to see how fast he is in soldering and getting everything running. IMHO best soldering skills that I have ever seen. From now on he will be sending more Vampire boards to the other developers.
So question is why we will succeed where everyone else failed? Because we are united in one goal to present something new and innovative to Amiga community. We are all from different parts of the world working as a perfect team for more than 15 hours each day. The same time we are acting more like family sharing our everyday stories and our experiences in various projects that's why makes it so fun. All of that with perfect guidance of BigGun and ceiach, developers who are able to motivate rest of us to learn more and contribute properly to this project.
Few months ago I was informed that there is another way to solder PCB, much faster way. Before that I didn't know that there is difference between soldering paste and flux or that such things as a PCB stencils exists. To tell you the truth I was completely unaware that there are some other methods of soldering than regular one. On the video below is my first attempt to solder PCB using stencil done yesterday.
Tools & Parts used: PCB
Soldering paste (Sn63/Pb37)
Solder paste spreader
IRDA soldering station
Selecting stencil: After reading a lot about various stencils I have decided to order each and every version that's available, also considered doing homemade version but eventually that was removed as an option because PCB is way too complex. So basically you can order stainless steel or stencil based on polyimide films (mylar or kapton). In the table below you can see my impressions regarding each of them.
~100Eur, in some cases more
Medium, stencil is not so flexible
Medium, one stencil can be used for building about 200 PCB
My vote goes definitely for polyimide film based stencils. Not just because the price is lower but because it is really tricky to apply soldering paste on stainless steel stencil where FPGA should be placed. Because low flexibility you will end up with too much paste there once you remove stencil. With polyimide stencils that is not the case. They bend nicely under solder paste spreader so you will have proper quantity of paste placed on components pads each and every time.
Soldering: Only important thing here is temperature profile you must follow if you don't want to destroy components. Each manufacturer states maximum temperature values that we can't exceed. What we need is temperature values who will solder component and not overheat it and that's something done over defined period of time. Also In each component we can find moisture so if we heat component too much or too fast component will crack. This is temperature profile I m using.
As you probably know all the time on various forums I was complaining that I can't put latest revision of the Vampire 600 V2 to the production since HDMI is not tested. For more than month I was waiting for HDMI SMD connectors and that really delayed everything. Yesterday I have received them and after some small adjustments to the existing codes found on the net we have definite prove that all regarding hardware design is done properly, especially differential pair impedance calculation needed for proper work. So don't expect real Amiga video out yet but what's interesting here is that HDMI signals are generated from slow Amiga 7MHz clock without using any external crystal oscillators. Another great news is that HDMI signals are transferred over 3m long cable.
Last few month you could find lot of images on the web regarding Phoenix core inside Vampire 600 V1 but those are the first official pictures from me and results of Phoenix core inside new accelerator Vampire 600 V2, smallest accelerator ever produced for Amiga. I must say that Apollo-team did great job and in last few years we were working so hard every single day. Happy days for Amiga are yet to come...
Vampire 600 V2 is assembled like you can see on the image, looking small and compact. Then something amazing happened, Altera Cyclone III devices I have were detected wrongly by Quartus programmer or any other JTAG tool I was trying to use. Last few days I performed number of BST and TCL basted tests to prove that Cyclone devices are fake ones constantly thinking that something is wrong with my PCB design because chips I have looks perfect like any normal modern chip where labeling is done by etching and not by painting. In the design I have used EP3C40F484C8N and detected device on JTAG chain is EP3C16F484C8N. Difference between two of those is that one we use have 40K Logic Elements and detected one have just 16K. IDCODE for the one we used is 020F40DD and 020F20DD is what's detected, so only 2 bits are different. One more difference is that those parts are not 100% compatible regarding pins, booth have 484, but some of the pins on smaller devices are not used like I/O pins and testing those pins were definitive proof to me that this is fake device. Pin U17 I have used for SDRAM_A9 connection gave me 1.2V instead 3.3V. On EP3C16F484C8N that pin is for VCCINT(internal core voltage rated at 1.2V) and on EP3C40F484C8N this is regular I/O pin. After measuring this it was all clear to me, this is fake part and I become victim of much larger fraud that is going on in the world regarding electronic parts. Complete idea behind this is probably to buy cheaper parts in same packages re-brand it and sell at higher prices. Who could I blame I ask myself. I can't blame my supplier at all since he is manager and he send me part with exact part number I asked with perfect print on it. How could he know what is inside? So we have two options now. First one will be to order more parts from various sources in small quantities and then test them and see what are the ones who are 100% original and then order bigger quantity. This will be pure lack and playing with the fortune because you never know what someone will send you, and you can't create your judgment based on the picture of the part, price, seller ratings or the origin of the part. Second option is to redesign the board and make it 100% compatible to all Altera Cyclone III devices who have 484 pins. This will be huge task...
My only concern about this complete project was how to provide enough current for this type of accelerator to work. In worst case scenario I had to think about someone who have 2.5A Amiga power supply. What if our FPGA core at some point become so complex and FPGA needs to sink 3A to work properly, stable... External power supply was out of the question so I had to find another way. To solve this problem I had to enter the territory who is not known to me, understanding how switching regulators works. All the time in my previous designs I have used linear regulators with fix output values and that was easy to do. Let's try to compare linear and switching regulators first.
Only steps down (buck) so input voltage must be greater than output voltage
Step up (boost), step down (buck), inverts
Low, about 25% regarding efficiency VS load current
High, we are about 85% regarding efficiency VS load current
Low, few capacitors needs to be used
High, requiring inductor, filter caps, resistors
Large, part itself is not big, but together with other components needed takes lot of space on PCB
High, mostly because external components used
Medium, needs to be fixed in PCB design itself by creating AGND planes...
*Table used from article "Understanding the Advantages and Disadvantages of Linear Regulators" By Steven Keeping, simplified for our needs.
As you can see from the table above there are lot of advantages we got this way, but to simplify all let's say that we don't have heat problems anymore and that our current will be more stable and in values we need, so in short from 1.5A we have left after Amiga motheboard takes what's needed we create 3A needed for the accelerator to work properly.
Vampire 500 voltage regulation simplified
On this specific accelerator few voltage regulations are needed and 5V we get from Amiga motherboard we can use directly only for HDMI, rest of the included devices works on different voltages. To suit their needs we need to create lower voltages and enough current. First switching regulator who is connected to 5V will create 3.3V for voltage translators and dedicated FPGA I/O banks. From there we use linear regulator to create 2.5V for internal FPGA PLL. We use linear regulator there since PLL don't consumes much current and we are using it from 3.3V since voltage difference is smallest there so we will not create much heat. Last two switching regulators are for creating 1.2V needed for powering FPGA core and 1.8V for mobile DDR memory used, dedicated FPGA I/O banks.
Today I have received lot of parts for final Vampire 600 V2 production. It is not the same when you look into datasheet and search for measurements and to actually have part in your hands. It was surprise for me how Altera Cyclone III is small and in the same time how can it be so powerful. So I had to share my excitement here. I have taken some pictures to compare what we had before regarding sizes and what we have now.
Since demand for Vampire 600 V1 was so high I decided to redesign the board, add some more features, bigger FPGA, make board smaller and in any way better designed. Real reason for doing this was high demand for V1 I was unable to fulfill. All day night I was soldering to produce enough boards and I just couldn't keep up with that. Also my problems with customs I have mentioned number of times on various forums. Another reason was bug we had in V1 regarding RESET, bug was solved later in code but I didn't liked the idea to continue development of that card who has hardware bug. In V1 we had small FPGA, at the time that was more than enough but after apollo-team started to port Phoenix core to Vampire design soon enough we end up with lack of LE in our FPGA. For emulating MC68000 8K LE FPGA was enough but after we decided to emulate MC68020 instructions each day this FPGA was telling us that we are wasting our time. This time we will try to not create the same mistake. For easier soldering we are going with FPGA build in BGA package. This FPGA also have some benefits because his PLL can directly accept 7MHz signal from Amiga motherboard so we don't need to use external crystal oscillator on the board to get system synchronization to the mentioned clock signal. Memory size and model will stay the same, so for FastRam we will have 64MB of SDRAM memory who is better designed now regarding traces length. PCB itself is done in 4-layers and that will secure better GND plane and such thing is important if we aim for higher frequencies. For voltage regulation this time switching regulators are used instead linear ones and that will ensure proper work with any Amiga power supply because it will give enough power no matter how core inside of FPGA become complex and how much current it will take. On the board more capacitors are added, and there also we pickup smaller sizes 0402. All of that ensured that this board with his size of 50mmX100mm have good chances to become fastest and smallest Amiga accelerator board ever produced. Designing such board was nightmare because FPGA pads pitch was 0.8mm so Via hole diameter between those pads needed to be 0.2mm and that is something hard to produce for most of the PCB manufacturers. I played a risky game here now knowing how much production of such board can cost and placed the price of the board to 90 Eur before quotation from PCB manufacturer is finished. But after so much work it is about the time to have some luck. Board can be pre-ordered on Amibay or directly contacting me. To understand complexity of this design please look at the pictures found in (Read More, Pictures, Files...) of this article.
URGENT UPDATE: March 29, 2015
Quick update to explain new situation.
As the Phoenix core getting bigger and more complex (having 3 instructions per clk as we speak) with future possibility to add FPU and get into never seen performance at least in Amiga world I had to change few things regarding design. This will affect the price since I just can't find a way to produce card for 90Eur and satisfy Phoenix core needs in the same time. Inside apollo-team we had 3 day long discussion about this. 10K LE Altera Cyclone III could easily fit in that price range but simply that is not enough for Phoenix. So new redesign is taking place and we will use 40K LE Cyclone III FPGA device instead and that is something I can't get cheap. What is discovered that price needs to go up to 120Eur now to cover everything. Also I have decided to cover all loses for early pre-ordered cards so this will not have any affect to those who already ordered and paid for their cards. So from now I can only accept 120EUR for pre-orders. Shipping for Europe 5EUR, rest of the world 10EUR.
OULU, FINLAND - October 27th, 2014 - Finnish Amiga Users Group recently
received offers for two separate Amiga 4000 computer donations, for giving
onwards to worthy Amiga causes. We are very grateful for these generous
offers and have coordinated them to the best of our abilities. The
machines and donations themselves have been handled by private people.
We are now happy to announce that the first one of the Amiga 4000 donations
is on its way to the recipient, Igor "Majsta" Majstorovic in Bosnia. Igor
has worked tirelessly and selflessly on Field-Programmable Gate Array (FPGA)
accelerator cards to bring a modern solution to speeding up our old Amigas,
and we hope this donation we facilitated helps him in that work. The
donation also includes Amiga 4000 accelerator board connectors, plentiful
accessories and some Amiga mementos as well.
UPDATE: November 21, 2014
Received two huge packages. I will write about the things I received in new article after I solve few problems with monitor. He is heavily damaged, cathode tube was moved from its place, most of the wires inside are disconnected, lot of bended pins. It is sad because monitor looks from the inside and outside just like he has left the factory just now. I was repairing it all day and made some progress, got to the menu screen but still he is not working. In the tiny space inside monitor case I left lot of my blood, nasty fingers cuts... Destroyed my hands totally, but hey, it can't get any better than to mix my blood with Amiga devices :)
Last year I started Vampire 500 project, FPGA accelerator for Amiga 500 but without keyboard, floppy disks or let's say complete Amiga 500 I needed to stop that project. Goal was to have fast accelerator with emulated core and support for IDE with Gayle emulation. Few days ago I received Amiga 500 keyboard from ShK and bunch of Amiga floppy disks so now I have everything to continue this project. SysInfo results and Gayle detection are shown in Read More, Pictures, Files... section of this article.
This is the first public Phoenix core test. Despite some haters statements that this demo was written specially for Phoenix just to trick everyone that core is fast I must say that this is not true. Demo was tested in number of Amiga configurations and here are the results.
In fact you can test the demo on your system and report the results. You can find it in Read More, Pictures, Files... section of this article.
phoenix_demo4 - start from workbench
phoenix_demo4.bin - start from WinUAE selecting it as an main ROM file with 64MB of Motherboard fast.
I didn't have the time to write much since I was stuck with soldering but I had the time to read various Amiga forums and I was amusing myself reading about happiness of some people when they realized that one of the Vampire 600 accelerators send to UK was not in working order. It is replaced with working one. Don't worry so much I didn't developed all of this to put you out of business. Do you feel endangered in some way? Don't be afraid. What is most important to you? To see Amiga progress or to live from selling outdated products. I must say that my complete concept was success. Users learned how to upload cores to accelerator. I forced serious developers to buy Amiga 600 to be able to work with my hardware. Soon we will have fastest Amiga accelerator ever produced. I m sorry that you made some wrong decisions few years ago. You could find some time to talk with me :) Now, 30 more boards left for me to send, next 300 will be done by kipper2k in short period of time. At the end it is nice to see that people are selling your accelerators to order mine.
Today I received first pictures from new Vampire 600 user. This specific card was sent to ShK for SAKU 2013 event held at the Finnish Science Center Heureka in Helsinki on September 21st but unfortunately card was not there on time so visitors could only see poster of Vampire accelerator at the entrance hall. It took 11 days for package to arrive from Bosnia to Finland. Please look at the other pictures in Read More, Pictures, Files... section of this article.
You may noticed that 3 Vampire 600 boards are send somewhere but no one from pre-order list have been contacted. Don't be mad just read the story. On 21 Aug 2013 I became Apollo Team Member. What is Apollo you may wonder? Apollo-core is fastest FPGA core today and it is based on MC68K series of CPU. Again, you may ask why all of this is important for us? Yes we can run it inside Vampire accelerator series and get fastest Amiga accelerator ever produced. Now you know where are those 3 boards left. For past few days we are doing lot of work regarding optimization of the Apollo-core because original core can't fit into small FPGA used on Vampire 600. New core is taking shape, code named Phoenix, targeted at 100Mips and available as update for current core Vampire 600 is using at the end of November. What is my role in coding you may ask. I will be doing integration of Phoenix to Amiga Bus and few other things. So far I have created 500 lines of code and it seems that I will need to create 1000 more to get it done. All the time I was waiting for the opportunity to work with such names and to learn from them. Don't get me wrong but again I m proud that they recognized my hard work and invited me to the team. Final conclusion is that if all goes well there will be no point of building another accelerators instead FPGA accelerators. I must say that soon no one from other developers will be able to keep up with this.
UPDATE: September 11, 2013
After publishing this information's I noticed that too much people suggesting how and what needed to be done and why all of this is not possible. The same thing happened to most of the Amiga projects where developers just couldn't keep up with various demands. Adding some non standard features to the core usable for only few programmers takes time and most of the people will never notice or use that part. All of those comments created argue in Apollo team so we agreed that we will stop talking about complete project to the day we have first results. I didn't notice anyone contacting me about using schematics of Vampire 600 I published. So instead of talking what and how something should be done do it yourself. Enough said.
I have managed to finish 3 boards and today I will send them. Their destination: Germany. I must say that assembly of the boards is so difficult and when is done detailed testings are performed. Boards are in working condition and very fast. Complete process of soldering and testing can take complete day for just one board so you need to have patience because waiting list is long. I will need to create better assembly team because there is no way I can do all of this alone. I m mad at one more thing. I should concentrate of creating new products for Amiga and instead of doing that I m stuck with soldering because complete process is so delicate and I can't trust anyone. My assembly team made so much mistakes in process of soldering that I wasted five days to discover them.
For some reason I had to see how all of this performs online and I m satisfied! Is it usable in any way? Yes it is! Like you can see on attached video simple web sites can be used, forums etc. Let me say that maybe 70% of the things you normally do online can be done. But, I have a feeling that all of this could be much better if I had opportunity to connect Amiga to different monitor. Strange thing is that MiamiDX didn't worked and it seems that he have some problems with DNS. For best performance I used Voyager and Aweb. I m disappointed to IBrowse because he was slowest so I don't use it at all. Yes I know that everyone said that he is the fastest one but not in my case. It seems to me also that Voyager have very dirty code with strong will to crash sometimes. On other side is AWEB solid and stable and with few tunings maybe can get most from new sites. Strange thing is that new browsers like OWB and NetSurf needs FPU and ixemul libraries optimised for FPU. Conclusion to this would be that developers are going in wrong way because soon we will have emulated MC68K inside FPGA capable of much more than MC68060 with FPU. On other side there is very interesting project called Merlin Web browser who works on regular MC68K and it has support for CSS it is not stable but it has potential for shore.
For some of you this may not look so strange at all but to me, person who actually never had an Amiga before, it was quite surprise to see Doom running on A600. Yes that's because Vampire 600 is doing acceleration but still I had so much questions in my mind looking at this. Without "real" graphic card, without any serious hardware and comparing that to minimum requirements for PC version gives me permission to say PC is just a trash, who stayed alive all of those years because people those days just don't know about anything else. To play PC version of Doom I had to spend serious amount of money back in the days and still game was not playable. On the paper 486 CPU is much better than older CPU's from MC68K series. Some versions are capable of 50Mips or more but for playing this type of games we needed graphic card, sound card and at least 8MB of memory so comparing Amiga 600 with all of this makes me smile. Small machine sitting on the table and able to perform much more than 486 in huge, heavy case with tons of cables and power consumption 10 times greater than A600.
After today's testing I think that I m proud to myself more than ever. Hey!!! I created my own hardware, in some basement, able to play 3D game, able to play Doom. Imagine!!!
As you may noticed some very interesting things are happened regarding this project but news about that I didn't publish on this site. One Vampire 500 was sent to robinson5 from retroramblings.net and it was the one that I used for my testings. This is maybe most important thing happened to complete Vampire FPGA project because we are now in situation that we have opportunity to exchange codes and to point each other what might be a problem. We have already exchanged few mails and codes and it is very interesting to me that we solved few problems but using different approach. It is normal that two people can think different and coding in VHDL is something that is easier to create than to understand what someone wanted to do with specific part of the code. Another great discovery from robinson5 was bad solder joint on A16 trace of Vampire 500 and that was the reason why my code didn't worked. Earlier I have discovered that there was problem with one resistor placed on 7Mhz clk trace so after solving those hardware barriers everything regarding code should not be such problem.
From the start of this project people on various forums are again against my projects talking that Amiga 500 uses MC68K to the max and that I will never be able to create something that is done for Amiga 600. What can I say about that, only few lines of code were needed to be implemented in old code and everything worked. Now we have 3 versions of the code and all of them are working fine and main differences are in solving accesses to MC8600 peripherals.