Dingoo A330

Posted 2010.05.31 20.26 in Computers/Internet/Technology by Stephanie

It’s the new release from Dingoo Technologies. I got one to satisfy my curiosity, but sadly it disappoints on many levels.

Dingoo A330

I made up a new version of Dingux that takes advantage of the added memory and faster clock speed. To do that, I needed to get a serial port in there for testing. Unlike the A320, the 330 seems to just have half a port; TX but no RX. So you can get debug data out, but you can’t interact with it. Sucky.

Probing for the RX Line

The TX data is found on a single unmarked testpoint that lies beneath the LCD screen, in the upper middle part of the motherboard. In hopes of finding the RX line, I did some probing to the copper traces around the CPU in the area of the TX line, but neither of my two most-promising candidates proved to be RX data. It is probably not connected at all. More sucky.

A330 Motherboard

I stuck the serial port on the left-hand side of the Dingoo, above the reset button. It was the only clear spot on the motherboard, but it turns out the left speaker wants to sit there, and the serial port keeps failing on me – I have to take it apart and fiddle with it to get it working again. The A330 disappoints on many levels.


  1. RayeR says:

    how its going with serial port? I just got a new A330 today and looking for mods. I found serial line mod for A320 where it was pretty straighfwd because of Rx, Tx marks on silk screen. I googled more but I found only your site about this topic. It’s some months after so anything new? Nobody found Rx yet? I can’t belive they left the pad disconnected under chip. Is there some program that would show received bytes on the screen? Then I could test some pins by injecting data through a resistor…

  2. Stephanie says:

    Hello RayeR,

    I spent an afternoon testing possible suspects for the RX line and came up with nothing. “unofficial” word from the company confirmed that there is no RX line; they really did leave it unconnected.

    If you wanted to keep up the search, you could use Minicom, connect it to ttyS0 and if it detects anything that would show up on the screen. I don’t know if someone has already compiled it for Dingux but the source is readily available.

    Personally I have been out of the dingoo scene for a few months now, so I don’t have any new information.


  3. RayeR says:

    Thanks for quick reply. And how did you tested the Rx without minicom? Do you have a contact to someone from company that could provide some info about HW? How they debug it – console via USB? Maybe there would be a ossibility. Some ARM MCU (I work with smaller ST ARM9) has variable IO peripheral mapping. This mean that e.g. UART0 can be mapped to say 2 or thee different pin pairs and you select it by config register the alternate function of the pin. But it would require, that those pins will be unused but routed out. This gives not much chances. Maybe lucky the Rx is located in some most outer balls of BGA and could be tapped by fine wire.

    I have also question to wireless module. Could it be used for bidirectional communication or it’s just a receiver from gamepad?

    1. Stephanie says:

      My version of Dingux was spawning a serial console on the UART, so I just hooked up a linux laptop and ran Minicom on there, and tried sending data in to see if I could get any response back.

      It’s all moot anyways – the RX line is not connected or brought out from underneath the CPU. It was ‘unofficial’ but the company did confirm this.

  4. RayeR says:

    Somewhere I found that the CPU is in real TCC8902 SoC with ARM1176JZF-S core and should have 6 UARTs. But I didn’t found hardware ref. manual anywhere.

    1. Stephanie says:

      Hi RayeR,

      The CPU on the A330 is the same as the one on the A320, a JZ4732 MIPS. At least, that’s what it is on the A330 that I have. The ‘other dingoo’ company might have made another a330 but I don’t have any information about that.

      The JZ4732 just has the two UARTs and both are on inner balls.

      1. RayeR says:

        Ah, there’s a lot of confusing info about the CPU. In the original firmware is the string “JZ4740-IPU”. The architecture is differently named as Xburst or JzRISC and should be ?compatible? with MIPS32r2…
        Somewhere else I found: “Jz4732 = Jz4740 + secret usb boot code rom”

        JZ4740 datasheet says this:
        UART0_TxD – P12, C15 (TDO)
        UART0_RxD – M12, B14 (TDI)
        (shared with JTAG)
        UART1_RxD – N12
        UART1_TxD – R11
        So only UART1_TxD is in outer line. But I think they should have routed out the JTAG which is shared with UART0. So somewhere in bootloader it could be reconfigured. Tomorrow I’ll open in and look closer. Unfortunatelly I don’t have x-ray eyes, yet…

        1. RayeR says:

          BTW I have probably broken stereo jack plug-switch that disables internal reproductor output. When plug the headphones it’s still plays from repro. So I have to open it anyway…

        2. RayeR says:

          I opened dingoo and tried to hook Tx and got the following output at 56kbaud:

          A330 Native 1st SPL by Stephanie Maks
          HW init
          SLCD Init
          No SD Card, forcing Native..
          NAND load
          IMG start
          NAND Loading…
          get ccpmp_config ok!!!
          ccpmp_config.firmware_name = A320.HXF. ccpmp_config.update_key = 123, ccpmp_config.lcm.width = 320, ccpmp_config.lcm.height = 240.
          loader normal mode…
          Creating ftl device…
          id:EC D7 55 B6 78
          id:00 00 00 00 00
          id:00 00 00 00 00
          id:00 00 00 00 00
          usb_connect = 0
          into lcd_init.
          loader — into lcd_init.
          into init_lcd_gpio.
          out init_lcd_gpio.
          loader — init_lcd_gpio ok.
          into Init_LCM_FAIR_ILI9331_320_240!!!
          out Init_LCM_FAIR_ILI9331_320_240!!!
          loader — init_lcd_register ok.
          loader — out lcd_init.
          OK 0.
          out lcd_init.
          get_lcd_brightness — value = 3.
          len is 0x 500000
          os_len = 0x 23b018. checksum = 0x0a2d83c5.
          00002871:1.00002928:1.1 – ret = 0
          2 – ret = 1
          Run image…

          c_main enter——!!
          kseg init OK!
          new loader, system config ok!
          intc init OK!
          intc lib OK!

          the os is start

          I also found some large testpoints near the RF module but didn’t examine them. I also looking at the CPU and the balls are really small so it would be tricky to connect outer balls.

          I didn’t get miniSD yet – I looks very rare in our markets and I didn’t expect this would be problem so I didn’t tried dingux yet.

  5. RayeR says:

    Well, I got TCC8900 which should be same package as TCC8902, 20×20 pin BGA, pitch 0,8mm, 17x17mm
    Here are balls for all 6 UARTs:

    GPIOE[0] N7 B IU GPIOE[0] UTXD(0)
    GPIOE[1] P8 B IU GPIOE[1] URXD(0)

    GPIOE[4] L8 B IU GPIOE[4] UTXD(1)
    GPIOE[5] N8 B IU GPIOE[5] URXD(1)

    GPIOE[8] W11 B I GPIOE[8] UTXD(2)
    GPIOE[9] Y11 B I GPIOE[9] URXD(2)

    GPIOE[10] Y12 B I GPIOE[10] UTXD(3)
    GPIOE[11] T10 B I GPIOE[11] URXD(3)

    GPIOD[13] B17 B I GPIOD[13] UTXD(4)
    GPIOD[14] L10 B I GPIOD[14] URXD(4)

    GPIOD[17] D14 B IU GPIOD[17] UTXD(5)
    GPIOD[18] J11 B IU GPIOD[18] URXD(5)

    So only URXD(2) and UTXD(3) are in outer ball lines. Drilling through to inner balls would be really hardcore as we don’t see inside layers 😛

Leave a Comment