my own JZ4780 board

65 views
Skip to first unread message

Ivan Gagis

unread,
Apr 5, 2020, 9:21:37 PM4/5/20
to MIPS Creator CI20 Development
Hi,

as a hobby project I recently started development of my own single board computer based on JZ4780.
I'm a software developer, but recently decided to do some electronics projects (after 20 years break).
I have some experience with MCUs already and now I decided to get some experience with more powerful CPUs, so I started this project as a practice task.
I have chosen JZ4780 because this is something different than those omnipresent ARM SoC's.

For now, the goal of the project is to create a board based on Ci20 design but very much simplified.
The board functionality should be enough for usage as a media center for TV or toy desktop computer.
That means no any GPIO, camera, LCD etc.
The following minimum set of features is planned:
 - 1 GB DDR3 ram
 - HDMI
 - 2x host USB ports
 - boot from SD card only
 - RJ-45 Ethernet
 - UART4 for serial console
 - WiFi if all goes well

So far I have some draft of schematics: http://izdelie.icu/jz4780_board.pdf

I thought that some people here have some experience with Ci20 and possibly electronics could have a look at my schematics and give some feedback/comments.
Would be nice to catch as much bugs as possible before first prototype of PCB.

Thanks, your feedback is welcome.

Br,
Ivan

pa...@boddie.org.uk

unread,
May 5, 2020, 2:19:18 PM5/5/20
to MIPS Creator CI20 Development
On Monday, April 6, 2020 at 3:21:37 AM UTC+2, Ivan Gagis wrote:
Hi,

as a hobby project I recently started development of my own single board computer based on JZ4780.
I'm a software developer, but recently decided to do some electronics projects (after 20 years break).
I have some experience with MCUs already and now I decided to get some experience with more powerful CPUs, so I started this project as a practice task.
I have chosen JZ4780 because this is something different than those omnipresent ARM SoC's.

I hope you're able to source the product conveniently.
 
For now, the goal of the project is to create a board based on Ci20 design but very much simplified.
The board functionality should be enough for usage as a media center for TV or toy desktop computer.
That means no any GPIO, camera, LCD etc.

It's clear that the CI20 is effectively a media centre or set-top box design, and Imagination may have seen that this was a popular application for the Raspberry Pi and thus wanted to pitch something similar, but I feel that by not making the LCD video signals available or providing LVDS output, an opportunity was missed for people to experiment with mobile or tablet devices. So, it could be interesting to consider such possibilities with your board (or keep it in mind for the future).
 
The following minimum set of features is planned:
 - 1 GB DDR3 ram
 - HDMI
 - 2x host USB ports
 - boot from SD card only

I only use my CI20 with SD card, and I don't really see a compelling need for on-board flash (others may disagree, of course), but the USB boot capability of the Ingenic devices can be very useful. With the Ben NanoNote, I got quite far by deploying payloads over USB, and there was also work done over the years to take advantage of this capability on the CI20.
 
 - RJ-45 Ethernet
 - UART4 for serial console
 - WiFi if all goes well

So far I have some draft of schematics: http://izdelie.icu/jz4780_board.pdf

I thought that some people here have some experience with Ci20 and possibly electronics could have a look at my schematics and give some feedback/comments.
Would be nice to catch as much bugs as possible before first prototype of PCB.

I doubt that I would be very good at noticing problems very quickly, and there should be others reading who can give better advice.

The one thing that stands out from memory, however, is the matter of power regulation. On the CI20, there is an odd arrangement (although perhaps it is quite normal) where the SoC interfaces with the specially designed PMU using a particular pin, and this is controlled using the SoC's hibernation support in the real-time clock peripheral. The PMU is part of a general family and documentation for the precise variant is not apparently available, but datasheets exist for parts that are probably very similar or even the same apart from the name.

I have also heard it suggested that the reason the CI20 employs a dedicated RTC chip instead of just having the SoC keep the time may be due to disappointing power consumption when the SoC is powered down. So this might influence your chosen RTC solution.
 
Thanks, your feedback is welcome.

Sorry not to have seen this message earlier! I hope the prototyping goes well, certainly.

Paul

Lucas Fryzek

unread,
Jul 23, 2020, 3:45:32 PM7/23/20
to MIPS Creator CI20 Development
Very cool! I have some questions about this,
  1. How to do you plan to prototype this? Will you get a PCB manufactured? I'm interested in where one would go and how much it would cost
  2. Have you worked with a complex BGA part like this before? If so what did you start with to learn?
  3. Where are you sourcing the parts from? I saw that on aliexpress you can purchase the chips
An interesting idea I had for the JZ4780 is to to interface the DDR ram through an FPGA that supports PCIe. You can then come up with a memory map that has PCIe available for some address range and use an external GPU or something instead of relying on the proprietary powerVR GPU. Probably not an easy or straightforward thing but it would be cool for a MIPS powered computer.

Regards,
Lucas

Ivan Gagis

unread,
Jul 24, 2020, 9:11:01 AM7/24/20
to MIPS Creator CI20 Development
Hi Lucas,

Thanks for the interest, but unfortunately, I have frozen the project for uncertain time.
The reason for that is that the project turned out to be too expensive. The final board would cost around 100 EUR which does not look interesting.

But I can answer your questions:
1. I planned to use services like jlcpcb.com or pcbway.com, they manufacture PCBs in low quantities and send them by post. I have already used jlcpcb.com for my other projects.
2. I haven't worked with BGA parts, but I worked with TQFP. I was going to solder BGA with just hotairgun possibly using some simple PCB bottom heater along with that, there are videos on youtube with tutorials about how to solder BGA in home conditions, it does not look impossible.
3. I could find parts on aliexpress.com and alibaba.com. Working with alibaba.com has some specifics, you have to actually chat with chinese suppliers who are trying to sell you all possible stuff you don't actually need. But it is still possible to agree on the parts you need and price. I could buy just five JZ4780 chips (9$ each) and 10 DDR3 chips for prototyping. So, I mean on alibaba.com it is not always so that you have to buy big quantities, but delivery usually costs around 20-30 EUR.

I planned to use 4 layers PCB and I actually started routing it with kicad. The difficulty here is to route CPU to DDR3 connection, as the frequencies are high one has to take care about connection lines impedance, line termination and length matching. With kicad it is not that simple to do the length matching, it allows you to measure the track length, but the tool is not so easy to use as it is open source and is not providing the cutting edge functionality for aiding the routing of this kind of stuff. While buying commercial PCB routing tools I am not ready yet.

The other problem is that the resulting schematics contains a lot of passive parts, like resistors and capacitors in 0402 or 0603 SMD packages, like above 100 of those. Mounting all those by hand is maybe ok if you do just one board, but making even 5 boards by hand is too tedious. So, I considered to buy assembly service also from jlcpcb or pcbway, but the prices for that are too high.
So, I decided that it probably is not worth it and I better spend time on my other projects.
If someone has interest, I can share the project files which I have done so far, basically it is schematics and the PCB at the beginning stage of routing. But, I actually have drawn custom parts for kicad, like JZ4780 and some other stuff, which might be useful. So, if there is interest in seeing/continuing that project, I can open source the files, just let me now.

Br,
Ivan

чт, 23 июл. 2020 г. в 22:45, Lucas Fryzek <lucas....@gmail.com>:
--
You received this message because you are subscribed to the Google Groups "MIPS Creator CI20 Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mips-creator-ci2...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/mips-creator-ci20-dev/b8e1b9e0-8d74-4788-8588-085d091262c5n%40googlegroups.com.

Lucas Fryzek

unread,
Jul 24, 2020, 12:05:06 PM7/24/20
to Ivan Gagis, MIPS Creator CI20 Development
Hello Ivan,

I'd be interested in looking at the files if you want to publish them. I have some ideas for messing around with the JZ4780 chip. I was reading through the data sheet and it looks like it can boot into just SRAM without using DDR. Could be interesting to experiment with a minimal board and getting something to boot without having to worry about the complexities of routing DDR memory.

Regards,
Lucas

pa...@boddie.org.uk

unread,
Jul 24, 2020, 6:24:24 PM7/24/20
to MIPS Creator CI20 Development
On Friday, July 24, 2020 at 3:11:01 PM UTC+2, Ivan Gagis wrote:
Hi Lucas,

Thanks for the interest, but unfortunately, I have frozen the project for uncertain time.
The reason for that is that the project turned out to be too expensive. The final board would cost around 100 EUR which does not look interesting.

I guess that at low volumes the pricing will be uncompetitive, but 100 EUR per board is not completely unattractive.
 
But I can answer your questions:
1. I planned to use services like jlcpcb.com or pcbway.com, they manufacture PCBs in low quantities and send them by post. I have already used jlcpcb.com for my other projects.
2. I haven't worked with BGA parts, but I worked with TQFP. I was going to solder BGA with just hotairgun possibly using some simple PCB bottom heater along with that, there are videos on youtube with tutorials about how to solder BGA in home conditions, it does not look impossible.
3. I could find parts on aliexpress.com and alibaba.com. Working with alibaba.com has some specifics, you have to actually chat with chinese suppliers who are trying to sell you all possible stuff you don't actually need. But it is still possible to agree on the parts you need and price. I could buy just five JZ4780 chips (9$ each) and 10 DDR3 chips for prototyping. So, I mean on alibaba.com it is not always so that you have to buy big quantities, but delivery usually costs around 20-30 EUR.

I imagine that the process of procuring parts is rather involved and not particularly accessible for most people, so it is interesting to hear your findings.
 
I planned to use 4 layers PCB and I actually started routing it with kicad. The difficulty here is to route CPU to DDR3 connection, as the frequencies are high one has to take care about connection lines impedance, line termination and length matching. With kicad it is not that simple to do the length matching, it allows you to measure the track length, but the tool is not so easy to use as it is open source and is not providing the cutting edge functionality for aiding the routing of this kind of stuff. While buying commercial PCB routing tools I am not ready yet.

I haven't kept up with the state of KiCad, but I believe that there have been various projects doing DDR3 routing with that software. As far as I know, companies like Olimex do boards at this level of sophistication in KiCad, too. But it is entirely possible that the people doing such work have a lot of experience and also the possibility to make and learn from their mistakes without the costs being a significant factor. Such timing/impedence-sensitive stuff would put me off designing a board (amongst many other things).
 
The other problem is that the resulting schematics contains a lot of passive parts, like resistors and capacitors in 0402 or 0603 SMD packages, like above 100 of those. Mounting all those by hand is maybe ok if you do just one board, but making even 5 boards by hand is too tedious. So, I considered to buy assembly service also from jlcpcb or pcbway, but the prices for that are too high.
So, I decided that it probably is not worth it and I better spend time on my other projects.
If someone has interest, I can share the project files which I have done so far, basically it is schematics and the PCB at the beginning stage of routing. But, I actually have drawn custom parts for kicad, like JZ4780 and some other stuff, which might be useful. So, if there is interest in seeing/continuing that project, I can open source the files, just let me now.

Making your materials available might be useful to others. Most of the Ingenic boards or projects out there are proprietary, with the CI20 having only schematics available, and I don't think the Ben NanoNote (and very few derivatives) had much more than schematics available.

The EOMA68 project did have a JZ4775 board at a certain level of completion, but the design files are not freely available:


If only the decision had been made to press ahead with that design...

Paul

Ivan Gagis

unread,
Jul 24, 2020, 7:02:38 PM7/24/20
to MIPS Creator CI20 Development
Hi All,

ok, at least two people interested, then here you go:

I also collected datasheets for parts I was going to use and some other useful info in PDFs, those are in 'docs' directory in the repo.

In order to get idea of how to route DDR I had to read some guidelines from memory chip manufacturers, those PDFs are here:

For routing DDR I made a document consolidating rules which are to be kept in mind while routing:

As I said before, I'm new to this area of high frequency digital stuff, so all I did is my first take in that area.

In case somebody is willing to continue that project, I can help with advice. Basically, what is to be done is PCB routing.
I still have interest, but I just realized that I have too many other projects and lack of time due to that.

Br,
Ivan




сб, 25 июл. 2020 г. в 01:24, <pa...@boddie.org.uk>:
--
You received this message because you are subscribed to the Google Groups "MIPS Creator CI20 Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mips-creator-ci2...@googlegroups.com.

Paul Boddie

unread,
Jul 24, 2020, 7:37:34 PM7/24/20
to mips-creat...@googlegroups.com
On Saturday, 25 July 2020 01:02:25 CEST Ivan Gagis wrote:
> Hi All,
>
> ok, at least two people interested, then here you go:
> https://gitlab.com/igagis/cranberrypi

If you could choose a licence for your work, that would be even better!
Apologies if there is one indicated and I just haven't noticed it. Thank you
for sharing your work with us.

> I also collected datasheets for parts I was going to use and some other
> useful info in PDFs, those are in 'docs' directory in the repo.
>
> In order to get idea of how to route DDR I had to read some guidelines from
> memory chip manufacturers, those PDFs are here:
> https://gitlab.com/igagis/cranberrypi/-/tree/master/docs/info/ddr
>
> For routing DDR I made a document consolidating rules which are to be kept
> in mind while routing:
> https://gitlab.com/igagis/cranberrypi/-/blob/master/docs/pcb_routing.adoc

You're more organised than I am, certainly. I should try and dig up guidance
about routing because I am certain I have read plenty of conversations about
this in recent years.

> As I said before, I'm new to this area of high frequency digital stuff, so
> all I did is my first take in that area.
>
> In case somebody is willing to continue that project, I can help with
> advice. Basically, what is to be done is PCB routing.

I certainly don't consider myself competent enough to continue this at any
decent tempo, but having it available could potentially encourage someone with
more expertise into bringing it, or something like it, to fruition.

My own efforts with PCB design have been modest, with my last activities
involving quite a bit of time being spent making footprints for connectors. I
discovered that I could spend rather too much time doing such ostensibly
simple things. (I also looked at the fped program which may now need some
maintenance.)

> I still have interest, but I just realized that I have too many other
> projects and lack of time due to that.

You aren't the only person in this position. :-)

Paul


Ivan Gagis

unread,
Jul 24, 2020, 8:15:13 PM7/24/20
to MIPS Creator CI20 Development
Hi Paul,

I have added the license, it is MIT. I'm not sure it works for hardware projects, but I have no experience with hardware licenses. Quickly googling and reading article about it (https://opensource.com/law/15/2/intro-open-hardware-licensing) I got an impression that a hardware most likely does not need a license at all in order to be an open hardware.
But if you can suggest some license, it would be great.

Regarding being organized, well there are too many rules to keep in mind so I decided to make that document, otherwise it is hard to grasp all of those, as I developed those from reading several guide line documents, i.e. taking those from different places, so I had to gather them in one document. And also it is always good to document what you are doing, because returning to some project after, say 2 years, you look at it as if it was not done by you :).

Br,
Ivan

сб, 25 июл. 2020 г. в 02:37, Paul Boddie <pa...@boddie.org.uk>:
--
You received this message because you are subscribed to the Google Groups "MIPS Creator CI20 Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mips-creator-ci2...@googlegroups.com.

Nikolaus Schaller

unread,
Apr 4, 2021, 12:19:31 PM4/4/21
to MIPS Creator CI20 Development

Hi Ivan,
unfortunately I did miss your mail 12 months (minus 2 days) ago...
You may know that I am the designer of the Openmoko GTA04 board (OMAP3) and the Pyra-Handheld (OMAP5).
I have done both in EAGLE years ago but I have no experience (and no plans to switch to and invest time) with KiCAD.
By the way: the jz4780 and the omap5432 (dual core Cortex A15) have the same package size.
So they are not exactly interchangeable (partially they have different interfaces) but it is not impossible to design a jz4780 based processor board for the Pyra-Handheld...
Beware: the omap5432 board had needed 10 layers and 4 on the top side had been needed to connect the DDR to the processor. Some others had to be used for wide trace power distribution.
And the PCBs need laser drilled micro via technology (which is something you can't buy around the corner and has a very high project setup cost - several 1000$ for 1 unit. Or 10. Or 10000).
Yes, it is challenging but can be done. If money is available.
Production is also challenging.
But there I now have equipment for SMD. A small Pick&Place machine and a vapour phase soldering machine.
I use them for prototyping fine pitch BGA devices. So it is basically possible with this equipment to build some prototype boards.
The question of availability of chips has already been addressed and it may be possible to get a handful. But AFAIK it is not possible to source them from the manufacturer. For omap5 we can still buy chips from TI (although they are not on public offer).
A bigger question is how much time (and money) to invest. And there - even where I really like the jz4780 more than the OMAP5 - it is questionable if it is a good idea.
The jz4780 compared to omap5 is slower (roughly factor 4) - but stays much cooler.
Both use the PVR-SGX with very problematic setup of kernel drivers and user-space.
The omap5 has some more modern interfaces (e.g. one USB3 OTG port).
Nevertheless, both are old designs if we compare to ARM Cortex A73 to A78.
So for your media center idea, I'd suggest to just buy a CI20 board since it fulfills almost all your requirements instead of designing a new one (even if it is a nice fun and learning project).
Best regards,
Nikolaus

Ivan Gagis

unread,
Apr 4, 2021, 2:37:06 PM4/4/21
to MIPS Creator CI20 Development
Hi Nikolaus,

cool, so you have done the real working devices which run on > 200MHz frequencies, so you have probably done all that impedance matching stuff etc. You are tough, as you are doing the stuff I gave up on doing :).

You replied to some middle message from the email thread, probably you have seen the whole thread, but just in case, I have opened the sources I had managed to create, those are available here: https://gitlab.com/igagis/cranberrypi

As far as I know, EAGLE is not a free software, right? My idea was to work with free software only, so I did not even think of using something like that. Perhaps, it is possible to export schematics from KICAD to EAGLE and do the PCB routing in EAGLE. But I'm not sure how much sense there is in that :). And I'm not sure that the schematics I developed are good, it was my first take on this kind of systems.
Though, I had designed much simpler devices based on ATmega8 and ESP8266, and those projects succeded.

As for 4 layers vs 10 layers, I started doing the MPU->DDR routing and doing it with just 4 layers didn't look impossible to me, though far not easy, of course.
Also, the JZ4780 design guide from Ingenic mentioned that minimum number of PCB layers is 4, so it should be doable with 4 layers.
Also, my understanding is that their reference jz4780 board uses 4 layers, but I'm not sure about that.

Why I wanted to use jz4780 ? Well, I must admit, it was only because it has MIPS architecture,  I thought that there is a lack of MIPS devices in single board computers market sector right now, so the idea was to fill that gap, possibly. Haha, big plans :P.
Of course it was just a hobby, I did not plan to earn anything on that, nor that I planned to achieve some practical tasks, so buying CI20 is not an option. The thing was in doing own single board computer.

It does not look like I will get back to that project. I still have 6 pieces of jz5780 chips lying at my electronics parts storage, so in case someone plans to do something with jz4780, I could possible share those 6 pcs. :D I also have a bunch of DDR3 chips and some other stuff I was buying for the project which I won't most likely ever need now.

Thanks for mailing to me, I'm still subscribed to the CI20 mailing list and it is pleasant to see some email activity from time to time, that there are some people still playing with these, already dead technology, boards :).

Br,
Ivan

воскресенье, 4 апреля 2021 г. в 19:19:31 UTC+3, Nikolaus Schaller:

H. Nikolaus Schaller

unread,
Apr 5, 2021, 5:43:13 AM4/5/21
to Ivan Gagis, MIPS Creator CI20 Development, Discussions about the Letux Kernel
Hi Ivan,

Am 04.04.2021 um 20:37 schrieb Ivan Gagis <iga...@gmail.com>:

Hi Nikolaus,

cool, so you have done the real working devices which run on > 200MHz frequencies, so you have probably done all that impedance matching stuff etc. You are tough, as you are doing the stuff I gave up on doing :).

Well, it was quite some work. Imepdance matching is a smaller problem the smaller the device is. If component distance is less than 10% of wavelength it becomes more and more invisible.


You replied to some middle message from the email thread, probably you have seen the whole thread, but just in case, I have opened the sources I had managed to create, those are available here:https://gitlab.com/igagis/cranberrypi 

As far as I know, EAGLE is not a free software, right?

No it isn't. But the data format is. It is XML. So even in 50 years someone can write an import tool to whatever is needed.

And, when we started (ca. 10 years ago) there was no KiCAD (well I think it did exist but had no functionality). So with KiCAD we would have needed to wait. Usually you need working tools first :)

For the GTA04 and the Pyra projects we did even develop our own CAD-support tool which can read in EAGLE files and present them for much easier on-screen editing as EAGLE does. Finally it is reexported and one can send an EAGLE board file to manufacturing.

Basically this CAD-support tool is another choice besides KiCAD and EAGLE. But it is not a complete solution with schematics entry, placement, component library, gerber export etc. Just some important parts to get an 8 or 10 layer layout done.

My idea was to work with free software only, so I did not even think of using something like that.

Well, that makes life unnecessary difficult :) IMHO, use a proprietary tool with open data format is equally good. Then, if support is stopped, you can still rescue your data.

Perhaps, it is possible to export schematics from KICAD to EAGLE and do the PCB routing in EAGLE. But I'm not sure how much sense there is in that :). And I'm not sure that the schematics I developed are good, it was my first take on this kind of systems.

Usually such projects run in iterations.You develop initial schematics. While doing the layout you regognise that some chips should better be replaced. Or pins should be connected differently. Or you find that there is no space for all the blocking capacitors you have planned for. Then you update schematics.

At some stage, you have a first layout which passes all design rule checks. Then you build a prototype. Just to recognise that two pins are swapped in the footprint definition. Or that an input is an output. Or you did not recognise the importance  footnote on page 3241 of the technical reference manual.

Then, you update schematics and layout again for a next version...

Therfore it is not a smooth process doing schematics and layout in different tools.

Though, I had designed much simpler devices based on ATmega8 and ESP8266, and those projects succeded.

As for 4 layers vs 10 layers, I started doing the MPU->DDR routing and doing it with just 4 layers didn't look impossible to me, though far not easy, of course.

Yes, the pure DDR routing is 4 layers. But to get them connected to the omap it did need laser drilled vias. This can not be done on 2 layers on one side and 2 on the other. They must all have 100µm distance.
For symmetry reasons you have 4 + 4 layers. Which is good because you usually want to connect all the gpios etc. which cross the DDR chips. So we ended up in 5+5 layers for the Pyra processor board.

Also, the JZ4780 design guide from Ingenic mentioned that minimum number of PCB layers is 4, so it should be doable with 4 layers.
Also, my understanding is that their reference jz4780 board uses 4 layers, but I'm not sure about that.

It is difficult to find out without damaging the board. X-Ray might be an option...

Why I wanted to use jz4780 ? Well, I must admit, it was only because it has MIPS architecture,  I thought that there is a lack of MIPS devices in single board computers market sector right now, so the idea was to fill that gap, possibly. Haha, big plans :P.

:)

Of course it was just a hobby, I did not plan to earn anything on that, nor that I planned to achieve some practical tasks, so buying CI20 is not an option. The thing was in doing own single board computer.

It does not look like I will get back to that project. I still have 6 pieces of jz5780 chips lying at my electronics parts storage, so in case someone plans to do something with jz4780, I could possible share those 6 pcs. :D I also have a bunch of DDR3 chips and some other stuff I was buying for the project which I won't most likely ever need now.

Thanks for mailing to me, I'm still subscribed to the CI20 mailing list and it is pleasant to see some email activity from time to time, that there are some people still playing with these, already dead technology, boards :).

Yes, for me it is fun developing and fixing Linux for these and keep it running for other projects.
And, it is a test bed to keep compilers and other knowledge up-to-date.

Also just fun without specific goals for these boards.

What I also had tried is to get PVR/SGX for the jz4780 back and working. And get some parts upstream. But that is an equally big project and somehow spare time is getting scarce more and more.

So I can fully understand that you have abandoned your project. I might have done the same.

BR,
Nikolaus
Reply all
Reply to author
Forward
0 new messages