Saturday, December 4, 2010

Clarifications on previous post

I'm not sure I've explained myself properly, since I totally agree with the comment posted by Xeatheran, but he failed to notice.

Using his words, people buying the A320 and similar devices want an emulator priced around $100. Any feature that significantly increases the price would make it have to compete with the other more expensive linux based consoles (Wiz/Caanoo come to mind) or with the godzillas of the market (NDS, PSP).

So, any wished feature must be such that doesn't increase the price significantly:
  • Better processor: by next year, the CC1800 will be obsolete and underpowered compared to other competitors in the PMP market. The CC2000 will be a bit more expensive, but here they have no choice but to move on or lag behind. Note that the CC2000 has a powerful GPU. More details upon the official anouncement.
  • 256MB: this was already planned before I suggested it. Note that the CC2000 processor uses DDR RAM, whose widespread usage makes it cheaper than the SDRAM used by the JZ4732 and CC1800. This means 256MB in the next generation consoles may probably cost the same or less than 64MB in the current generation consoles.
  • A 480x272 4.3" LCD screen is not much more expensive than the A320 LCD, and it would make a big difference, at least for me. I find the A320 and GA330 screens too small. Problem here is that if you need a multiple of 320x240, you'd have to go for an 800x480 4.3", which I believe will be not just a little but much more expensive.
  • It should be obvious: either powered host USB type A or SDIO. Not both. My choice here is host USB, because dongles are way cheaper and more accessible than SDIO cards. But they pointed out that it may be impossible to fit such a bulky connector in the design. Maybe the PCB cutout would solve this. Anyway, it would increase cost just a little bit (mostly due to the USB power DC-DC converter), but you are also saving by removing the 2.4GHz radio from the design, which also as I pointed out, may be a big advantage when (if) time comes to pass CE/UL certification.
  • Analog nubs: if they are aiming, besides emulation, to get software studios to develop games for this console, it is a must. A GPU capable of, for example, running FPS games, would make no sense without analog nubs.
The rest of features I mentioned are essentially free (except licensing Doom, Duke, etc).

So: a CC2000 SoC (800MHz, GPU), 256MB DDR RAM, 4.3" LCD, analog nubs and powered host USB type A port. This would make a killer emulation console and stay in the same price range where the A320/GA330 are.

Camera, touchscreen, WiFi, etc, are nonsense. If you want too shoot crappy photos (most integrated cameras are crap) or browse the internet, use your phone or buy a tablet.

Thursday, December 2, 2010

Suggestions for the next generation consoles

While I was with the CC folks I discussed with them a few suggestions I had for what I though would be the killer console, just in case some could be implemented in their next generation. They're eager to listen to users. That's invaluable IMHO.

Mind you, these are my own suggestions and that means some of them may be pointless since as you may already know I'm not a gamer. So, I'll really appreciate all kinds of comments.

I also collected suggestions from the people at #dingoonity IRC channel during one of the sleepless nights.

These are my suggestions:
  • At least 256MB RAM (this is already confirmed).
  • 4.3" or larger LCD (larger would probably hinder portability).
  • Powered USB OTG port (GA330 is OTG but not powered).
  • Host USB type A connector on the top side. Would allow easy use of WiFi or bluetooth dongles to add wireless capabilitites (internet, multiplayer, etc). Proably the only way to place such a connector without making the console too think would be to use a PCB cutout, such that the connector, instead of being on the PCB, is "into" the PCB (i.e. center of connector aligned with PCB).
  • One microSD slow and one SD/MMC slot with SDIO capability, which would allow use of wireless SDIO cards. Note that the host USB type A connector mentioned above would probably be a much better solution, since there are many more USB dongles to choose from and they're much cheaper than SDIO cards (you can buy a tiny bluetooth dongle for less than $6 shipped).
  • Allowing external wireless through either host USB type A or SDIO has some nice advantages over the internal 2.4GHz module currently used in the GA330:
  1. You can connect to another GA330, your mobile phone, home network, and whatnot. With the internal 2.4GHz module you can only connect to another GA330.
  2. Brings down the price of the console for users that don't need wireless anyway. For those that want it, it's dead easy to add it (mostly in the case of the hust USB type A connector). They could even sell a "wireless edition" pack including the dongle.
  3. Lack of wireless in the base console eases CE/UL certification (in case they ever want to comply).
  • Hardware color space conversion and scaling (already in the CC1800 VPU, and of course in the CC2000 which has a GPU).
  • Good subtitle support. Their high end PMP HD8900 already does support subtitles, buy they lack the black outline which is fundamental to ensure readability independent of image, and fails miserably (and silently) to load some subtitle files (I was able to solve this by rewriting then in strict UTF8 encoding, but this should not be necessary).
These are from #dingoonity:
  • Include Dingux plus a bundle of GPL games in each A320/GA330, and advertise it on the box as a selling point. Community will be happly to prepare such a bundle. In order to comply with the GPL the source code could be supplied in a separate subdirectory with a README stating that it can be safely deleted to reclaim some disk space.
  • License the full version of some famous OSS games like Doom, Duke Nukem 3D, etc, and include them in the bundle above.
  • Use the third connection of the headphone jack as a mic or line input, as it's used in many handsfree headphone kits. Usage of such a feature would be certainly minoritary, but it's essentially free (they're already using a three pin headphone jack in the A320 and I bet the codec they use in the GA330 already has MIC bias and MIC input pins).
  • Analog joypad. This would be great for games, but notice that this would provide the necessary pointing device for a web browser, for example.
  • Route all the unused GPIO pins to test pads on one clear area of the most accessible side of the PCB (both in the A320 and GA330 this would be the opposite side to where the LCD is connected, that is, the side you can access right after opening the case). Would be great if among those pins there was a I2C or SPI bus. This would be great for diehard hardware hackers, and is essentially free since doesn't increase manufacturing costs.

Tuesday, November 30, 2010

GA330 serial console

I just added a serial console port to one of my GA330. The pictures below detail the TX and RX pins location and the final result.


Green wire is TX, orange is RX, white is GND (you can probably connect to GND more easily anywhere on the other side of the PCB).



For the curious, here's the boot output (57600 8N1):

ChinaChip IPL V1.04
Data : Jun 08 2010 Time : 17:31:33

SDRAM CAPACITY IS: 04000000
89D7943E
000084FF
Total Size = 0x00047D60

!!! Ecc Correct Error !!!
!!! Ecc Correct Error !!!
.!!! Ecc Correct Error !!!
.Loader Size = 0x00037D60

ChinaChip SPL V1.14
Data : Aug 06 2010 Time : 16:02:01

loader is normal mode...
loader_burning = 0
Battery Voltage = 3746.
g_poweron_vol = 3550
ccpmp_config Ver : 1.08 !!!
LCD Set Init !!!!
LCD Set Init Over !!!!
ccpmp_config.firmware_name = A330.HXF ...
ccpmp_config.update_key = 0x81 ...
ccpmp_config.lcm_name = LCM_TB_TD030WHEA1_320_240 ...
LCD Init Begin.

CN2009P_CFG.DL Data : Aug 25 2010 Time : 17:38:37

****** Enter LCD Init ******
wHCLKDIV = 1, wLCLKDIV = 0
num = 0, flag = 0
num = 1, flag = 0
num = 2, flag = 0
num = 3, flag = 0
wHCLKDIV = 1, wLCLKDIV = 0
num = 1, flag = 1
update key bDevMode = 0
ccpmp_config.load_mode = 0
ret = 0x00102878
usb_mode = 1
NAND ID:
89D7943E
00008400
A0FFFFFF
0000FFFF
A0FFFFFF
0000FFFF
80FFFFFF
0000FFFF
A0FFFFFF
0000FFFF
Nand manufacturer 0: inter
Nand type 0: 4GB
Nand manufacturer 1: Unknown
Nand type 1: Unknown
Nand manufacturer 2: Unknown
Nand type 2: Unknown
Nand manufacturer 3: Unknown
Nand type 3: Unknown
Nand manufacturer 4: Unknown
Nand type 4: Unknown
Nand manufacturer 5: Unknown
Nand type 5: Unknown
Nand manufacturer 6: Unknown
Nand type 6: Unknown
Nand manufacturer 7: Unknown
Nand type 7: Unknown
(dev 0)offset = 8192.
(dev 0)size = 131072.
(dev 0)nb_block = 256.
xxx -- nf_bi[0] 8192.
000 -- sta_block = 16, sta_chip = 0, end_chip = 8192.
xxx -- aaa.
001 -- end_block = 272, sta_chip = 0, end_chip = 8192.
xxx -- bbb.
xxx -- 002.
(dev 0)start chip = 0.
(dev 0)start block = 16.
(dev 0)end chip = 0.
(dev 0)end block = 271.
_this->start_chip = 0, _this->end_chip = 0.
nand_scan_blocks -- 000.
nand_scan_blocks -- 001.
block range of partition 16 ~ 272 on chip 0.
Found bbt at block 16, ver:0x0001.
bklight level: 00000004
bk value = 98
update_succ = 0
ccpmp_config.load_mode = 0
hxf_exist = 0
Play Logo on Music !!!
animation total frame = 15.
CC1800 Run OS ....
nandc0 - chip0, ID: 89 d7 94 3e 84 0
nandc1 - chip0, ID: 80 fe ff ff ff ff
nandc1 - chip1, ID: 80 ff ff ff ff ff
nandc1 - chip2, ID: 80 fe ff ff ff ff
nandc1 - chip3, ID: a0 ff ff ff ff ff
gDiskCapacity = 7941120
begin fs_init...
begin cc_ntfs_init ...
cc_ntfs_init ok ...
fs init OK.
s_wLongPressGOHOME -1
SWITCHOFF KEY register -1
RMT 17 )
LCD Set Init !!!!
LCD Set Init Over !!!!
Init UDC
in otg init 3-14
out otg init
OS Heap Information:
Total Size: 0x00e00000
Used Size: 0x00245e24
Free Size: 0x00bba1dc
AP Heap Information:
Total Size: 0x02000000
Used Size: 0x0018ec8c
Free Size: 0x01e71374
OS Heap Information:
Total Size: 0x00e00000
Used Size: 0x00245e90
Free Size: 0x00bba170
AP Heap Information:
Total Size: 0x02000000
Used Size: 0x0018ec8c
Free Size: 0x01e71374
OS Heap Information:
Total Size: 0x00e00000
Used Size: 0x00245e90
Free Size: 0x00bba170
AP Heap Information:
Total Size: 0x02000000
Used Size: 0x001ff61c
Free Size: 0x01e009e4

Back from China

I'm back in one piece. It's been an exhausting trip and an amazing experience. I'm still in conversations with ChinaChip and will be writing some more updates in the following days. Meanwhile, a quick trip log:

20/11 Sat - Flight from Valencia to Paris, where I have a 6h transfer.

21/11 Sun - Flight from Paris to Hong Kong. The 12h trip is not as bad as expected because I score nothing short of 9h sleeping. They pick me up at the airport and take me to Shenzhen, have dinner, and then go to Dongguan straight to the hotel. I realize I'm gonna have a very hard time getting used to the chinese pronunciation of english.

22/11 Mon - Pick up at the hotel, not too early because I'm seriously jetlagged and wasn't able to sleep much. We go to the ChinaChip main headquarters and factory where I'm introduced to all the department heads and a few engineers. I visit all the facilities including the factory, and later have a meeting to outline the matters we should discuss in the following days. Excellent dinner with ChinaChip's president.

23/11 Tue - I've been able to sleep just a couple of hours from 10:00 to 12:00, and it's now 7:00 and I'm broken. Had arranged pick up at 9:00 but must delay it a few hours in order to try to catch some sleep. End up having lunch before going to ChinaChip's headquarters, where I spend most of the rest of the days in meetings.

24/11 Wed - Was able to sleep a bit more, so we can go early to the headquarters. More meetings in the morning, and then a walk around Dongguan downtown main square, which is amazingly huge. Late in the evening we travel to Shenzhen where we pay a quick visit to the marketing an sales offices and then go to the hotel to leave the baggage. Nice seafood dinner by the hotel and out to a club for a few beers and some fun.

25/11 Thu - Visit to the China Folk Culture Village park in Shenzhen, where you can see scaled down reproductions of the most important chinese landmarks, together with some other cultural information on the many ethnic groups. The park is huge and we spend the whole morning there. Then lunch and visit to Shenzhen's shanzhai market, which is shocking and will require a whole post. I could have very well spent several days in the market, but had to travel to Hong Kong, where we arrive by 21:00 after a tedious trip and several customs inspections. There's not much day left, so I just have a short walk on the Kwoloon shore to admire the island's view.

26/11 Fri - Full day on my own in Hong Kong. So much to see, so many people everywere. This also requires a whole post.

27/11 Sat - Plane takes off at 10:45, 13h flight (I score only 7h sleep in this one), 2.5h transfer in Paris, 1.5h flight and back in Valencia.

I'll also try to quickly summarize, for now, the content of the meetings with the ChinaChip folks:

- They will make changes to their bootloader and internal flash layout so that the dingux kernel and rootfs is installed in the internal flash. Both for the A320 and GA330 consoles. You'll have access to the internal flash from dingux (but the NTFL won't be released). The installation of dingux will be streamlined in the same way native firmware updates are, so no need to fiddle with usb tools any more.

- There will be dingux for the GA330, with full hardware support, and full open source. There's no problem with knockoffs here because it is based in their propietary CC1800 chip not available to third parties (as opposed to the JZ4732 in the A320).

- There is no schedule for the above as of now, since they're yet to decide if and how they'll sponsor it. In other words, one extreme is I work on it on a hobby basis as I've been so far and at zero cost, and the other extreme is they hire me full time. Anything in between is possible.

- The next generation of consoles will be based on the CC2000 and expected to roll out by Q2 next year. The CC2000 will be announced in a month or so, and I've been kindly asked not to reveal the details, but as you can imagine, it's beast compared to the JZ4732 and CC1800.

I'm sure I'm leaving something out, but I'll continue posting as things come up while I review my notes and prepare the reports of the meetings I'll be sending to ChinaChip. I'll also review the huge lot of pictures I took and post some.

Someone at #dingoonity said he needed a replacement speaker for his A320. Got it, but don't remember who he was. Email me, please.

Friday, November 19, 2010

Traveling to China

I'm leaving tomorrow to HK/China, where I'll be meeting the ChinaChip people. Will be back in a week, but will try to update as time permits on anything relevant to dingux on the GA330.

UPDATE: Paris CDG airport is da bomb. At least in terminal E where I am as I write this, plenty of places to lay and take a nap, massage chairs, PS3 for entertainment (free). The 5 hours I have to wander here suddenly don't feel so uphill.

They even have 10 minute free wifi. Too bad it's only 10 minutes. Unless you disconnect, clear the browser cookies, change the WiFi interface MAC address, and connect again, of course. You didn't read that here.

sudo ifconfig wlan0 hw ether [your previous MAC + 1]

Monday, November 8, 2010

DA330 ---> GA330

I'm not sure I understand as of know the relationship between ChinaChip, Dingoo, and Dingoo Technology. It appears that there are two Dingoo companies, one that produces 3D games and another that actually produces the A320. Both belong to ChinaChip group. Then there's Dingoo Technology, which have marketed the A330 which is basically an A320 (JZ4732/JZ4740 SoC) with a different case/LCD, 64MB RAM and stolen firmware. In order to avoid confusion with the later, at some point I decided to refer to it as A330 and to refer to the newer, CC1800 based machine as DA330. But I was mistaken since it is Gemei (another company of the ChinaChip group) who will be marketing it (my two sample machines have both the Gemei logo). So, I figured out I'd rather fix this silly mistake soon. So, from now on, I'll refer to the newer CC1800 based A330 as GA330.

Sorry for any caused confusion. I've edited previous blog entries to reflect this change.

Sunday, November 7, 2010

hwinit fixed

I just modified hwinit (in the subversion repository) so it works on all A320 out there. These are the changes:
  • Added WP bit clean in CP0 CAUSE register (original idea by BouKiCHi).
  • Added LCD init and logo display as visual feedback of hwinit success (original idea also by BouKiCHi).
  • Code cleanup and removal of unneeded nand code.
Kudos to BouKiCHi for an awesome work of debugging.

The first fix is just weird. CP0 means "coprocessor 0" in MIPS architechture. It's the part that takes care of memory management, exceptions, privilege levels and such. It turns out that some versions of the IPL (Initial Program Loader) ROM code in the JZ4732 set up the WATCH registers in such a way that a watch exception occurs but it deferred (by setting the bit WP in the abovementiones CAUSE register). Then later, when the linux kernel boots, as soon as it sets up the CP0 STATUS register (another special regitser of the same "coprocessor"), the WATCH exception is immediately serviced, caused an unhandled exception panic (that is: for people suffering this problem, hwinit was actually working, but the kernel was panicking way before the LCD was initialized, so they could see nothing at all).

Why some IPL ROM versions behave this way is a mystery, and would be harmless if the kernel MIPS initialization code was careful enough as to clear the WP bit before setting up the CP0 STATUS register (I bet this is fixed in more recent kernels, but I'm too lazy to verify it).

I'm working to provide a native firmware based dual boot installer, so this hwinit issue wasn't really top priority, but it had bugged me for so long that I just had to sort it out before continuing. I'm just like that, like to walk on solid ground and feel very uncomfortable when I leave loose ties behind me.

I won't make a new dual boot installer release with just the fixed hwinit, since by now I guess all those with trouble have eventually been lead to hwinit2. Next release should, in my opinion, include at least:
  • A newer kernel with:
  1. Fixed I/O corruption bug(either Ingenic or OpenDingux based).
  2. with support for newer flash chips in recent A320.
  3. Support for x760+.
  • An updated buildroot and toolchain, with both 32 and 64 bit versions. I had to upgrade my buildroot since the old one didn't compile in my Ubuntu 10.04 x64 box.

Thursday, November 4, 2010

x760+ key mappings

I know I asked this before, but it was loooong ago, and I'd like some more input on the topic. The x760+ has only UP/DOWN/LEFT/RIGHT/A/B/X/Y keys, which means START, SELECT, LSHOUDLER, RSHOULDER and HOLD are missing and they'll have to be emulated or I guess some dingux apps out there will not be usable.

The funny thing is that the schematic shows actual HOLD, START and SELECT keys. Incidentally, it also has LSHOULDER and RSHOULDER, but those are available only as test pads (which means someone with enough time could theoretically add them).

So I've though this simple approach:
  • POWER + UP = LSHOULDER
  • POWER + DOWN = SELECT
  • POWER + Y (triangle) = RSHOULDER
  • POWER + B = START
None of those combinations will be comfortable to use, but it's better than nothing. I just chose the combinations so they reflect the spatial locations of the corresponding keys in the A320. Will have to increase the reboot/poweroff time when POWER is pressed, otherwise it might be accidentally triggered when using the combos.

Comments welcome.

Tuesday, November 2, 2010

Electronica 2010

Next week I'm going to electrodisneyla... er... I mean electronica 2010, in Munich. Since there are only direct flights from Valencia on tuesday and saturday, I'll be staying there for more days than I really need to visit the trade fair, so I'll have some spare time. Please let me take the liberty to use this otherwise technical blog to kindly ask for advice on what to do in Munich (besides beers and flash job interviews :-)

Thanks.

Monday, November 1, 2010

GA330 specs

I believe there's some confusion on the GA330 specs. As I mentioned in the previous post, I have only preliminary, general, info, but this is what I found out so far (don't take it for granted anyway):
  • CC1800 processor (ARM926 400MHz).
  • 320x240 LCD, slightly larger than the A320 one.
  • 64MB RAM.
  • 2.4 GHz communication module. This is a true radio device and not just a keyboard hack. Enables multiplayer and custom peripherals.
  • USB OTG port, which allows connecting USB devices, but you'll need external +5V power (i.e. a powered hub).
The CC1800 has some nice features: the OMIP seems to be a video decoding coprocessor, and the VPU seems to be some kind of video post processor which can do quick scaling and color conversion before spitting out the data to the LCD.

I would say that the CC1800 CPU core belongs in the same class than the JZ4732 in the A320, however, being an ARM architecture has the advantage of the existing assembly optimized emulation cores. I bet that the VPU will allow a sizeable boost in performance by offloading the color conversion work from the SDL code.

64MB vs. 32MB in the A320 are a big advantage too.

Sunday, October 31, 2010

GA330 guts

It's been some time now since I received the two Gemei A330 sent by ChinaChip (GA330 from now on, to distinguish it from the other A330 out there which is basically an A320 with 64MB RAM). We're still working out the details (NDA, possible trip to China) to acquire the required info on the CC1800 SoC (system-on-chip) in order to port dingux to it, and it might still take a bit longer. Please excuse me if I don't comment more on the matter until everything is settled.

I'm working on the x760+ dingux port. As I said, I have all the required info, but time is limited and I've invested most of it reviewing all my initial work together with recent developments. Please be patient (yes, even more, sorry).

Meanwhile, here you have some electronics pron:





You'll notice that there is no battery in the pictures. The samples were sent without battery due to customs regulations, and though it's not strictly necessary for development, I'll get hold of substitutes soon.

You know I don't use the A320 and GA330 much for gaming (lack of time, you know, bla bla bla), so I can't give you a thorough review of the new GA330. Here are some first impressions. Please bear in mind that I'm not sure to which point the samples I got are definitve production machines, so take it with a pinch of salt:
  • The construction build feels good but not as good as the A320.
  • The LCD is exposed, i.e. there is no plastic protection (which is part of the enclosure) over it, as happens in the A320 and the X760+. This is definitely a no-no.
  • The LCD is a "delta matrix" type. Don't know much about the technology (I'll appreciate links), but it basically means that the color dots are not aligned in an orthogonal matrix but spread in a zig-zag pattern. This is supposed to be better for displaying pictures and video, but I think it's not good for games.
Please let me stress what I already said: these might not be definitive production units and the final product to market may have many of these thingies fixed. Also, note that ChinaChip actively supporting linux on their machines is a huge advance, and a first in the chinese PMP market as far as I know. And more powerful machines will come in the near future.

One final comment on the CC1800: it as a video processing unit (VPU) capable of doing scaling and all kinds of color conversion. The JZ4732 in the A320 has an image processing unit (IPU) which unfortunately is only good for converting YUV to RGB. This is very useful for video playing but useless for gaming. The CC1800's VPU will allow to provide each game with the framebuffer resolution and color space which is best suited, allowing for a significant increase in performance. Being an ARM processor will allow also to use the already existing assembly optimized emulation cores, for another boost in performance.

Sunday, October 10, 2010

GPIO tables updated

ChinaChip provided the A320 schematic, so after studying it I've completed the A320 GPIO table here:

http://code.google.com/p/dingoo-linux/wiki/GPIO?ts=1286716650&updated=GPIO

Some interesting updates:
  • PD3 and PD4 are unused GPIO but connected to test pads. Could be used for hardware mods (but first those pads would have to be located on the PCB). I'll open one of the A320 this evening and have a look.
  • PD22 is connected to the HOLD key (0=pressed, already pointed out in the comments by BouKiCHi).
  • PB30 confirmed to be battery charge status input.
  • PD20 is the battery charge control output (1=charge enabled). Actually, this turns on a NMOS which shunts a resistor to ground. This resistor is used to set the charge control, so in theory a PWM output could be used to achieve lower charge current. However, this pin's alternate function is SSI data output, so PWM might be achieved by spitting out continuously the appropriate data.
Not related to GPIO, but also interesting:
  • The FM chip audio output is (as expected) connected to the LINE_IN inputs of the JZ4732.
  • As I had guessed, the LCD read signal is not connected, and thus it is not possible to identify the LCD type or synchronize the GRAM refresh to the VSYNC.
As I mentioned earlier, I also have the x760+ schematics and I'm making the GPIO tables, soon to be published.

Friday, October 1, 2010

A personal note

When I sat to write the previous post didn't initially intend to get into the personal side. However, I felt I sort of owed you some explanation on my sudden disappearance, and besides that, I thought that remembering and summarizing the last year of frantic work would help venting a bit. Now that I read it again I have the feeling that I may have painted a gloomy picture on my job status and short-term future, but that would be a bit untrue, and I don't want anyone to worry about it. So, just to clarify: I'm not worried. If things end up well here where I'm now, fine. If they don't, I'm pretty sure I'll be able to find a new job, and in such case I'd really want it to be in another country (so does my wife), so moving abroad is actually an appealing possibility (and to some extent and foreseeing where this country is heading for, I even feel I owe it to my two daughters). And even if it's not that easy to find another job, I have no debt and savings to live on in the meantime.

Thursday, September 30, 2010

Back

Hi all,

Yes, I'm alive. I'll develop later a bit on what's happened for the last year, but first I'd like to apologize to all those disappointed by the sudden stop in A320/x760+ development. I was certainly forced by the circumstances, but that doesn't change the fact that some of you donated money and you probably feel it's not been put to good use. If you want your donation back, please email me.

Now for the blast:

  1. I have now sometime to work again on dingux.
  2. Someone from ChinaChip, from the team that developed the A320, contacted me.
  3. They want to support dingux development for the A330.
  4. They will provide hardware info on the A320.
  5. They will provide hardware info on the A330.
  6. They will provide couple of A330 machines.
  7. They already provided schematics and some source code for the x760+.
  8. They will try to provide a second x760+.

Bam.

The A320 is legacy and is no longer being manufactured (plus there seem to be quite a bunch of knock-offs), so they want to focus on the A330. The A330 is based on an ARM SoC (CC1800) for which, as far as I know, there's not already a linux port (as opposed to the Ingenic SoCs)... so this might be a bit off my skills. We'll see. The x760+ is no longer produced so it might not be possible to get another one (remember, I already have one purchased with donations), which would be helpful because there are two x760+ LCD types.

Having the schematics and example source code for the x760+ should make it much easier to get dingux up and running on it.

Hate to say this, but don't hold your breath. Now I have some time and I'm very motivated (the ChinaChip support is a blast), but my personal situation might change at any time and the job that pays the bills will always be the topmost priority.


And on the personal side (feel free to stop reading here): what's happened in the last year?.

By the time I was forced to put dingux on hold my company was struggling to survive, and downsizing like mad, up to the point that the I was the entire development department. Soon I became also the administrative, customer relations, manufacturing, and installation/repair department. Really. My gmail inbox just collapsed and at a certain point I just gave up trying to reply messages. I'm really sorry if some people felt ignored.

I was working on the hardware and OS of an OMAP3530 based facial biometrics access control system which was itself a quite complex project and wasn't expected to yield some income in the short term, so future looked grim. Then, all of a sudden, two customers (the local government of two small villages) contacted us regarding an outdoor wireless mesh PA system we used to develop and sell. There was an special stimulus plan from the spanish government which would provide financing for those two installations. This was unexpected, since the local governments are literally struggling to pay wages and as a contractor, you're lucky if you get paid six months after invoicing, but the stimulus plan changed the whole thing. It was evident that this was a one-time chance to get good, immediate revenue with a nice profit margin (not really, but we would be using stock that would otherwise have zero value), so I sort of finished the biometrics thingie as fast and as good as I could and jumped on to it.

That was about april.

To make things more fun, there were two choices: either use the v1 system, which had some problems, or finish the design of the v2 system, which would work much better, be easier to maintain, and allow to use all the existing equipment stock. So, I don't fucking know why, I went with the second, and from april to june (remember, at that time I was pretty much the whole company):

  1. Designed a new 200W class D weathertight amplifier. S/PDIF over RS422 and streaming over ethernet inputs. It has two microcontrollers inside, a PIC24 and a LPC1768, and I had never worked before with the later, though had some exprience with the luminary cortex-M3 parts.
  2. Built 20 units of the above, together with another 20 units of a specially modified wireless mesh node. I mean I literally built them. Ordered all the parts, soldered each and every component on the PCBs, machined the 20 cases and assembled it all. Well, actually my wife helped a lot by soldering most of the 0603 caps and resistors.
  3. Loaded my car with all the equipment and went on to install it. Climbing on top of a crane to put it on the top of the 14m poles and on roofs. Fortunately I'm not afraid of heights.
  4. Bought the two computers for the control centers, installed the OS, control application and configured it.
In retrospective, I just don't know how I could do it all myself. One man band working 16 hours a day. I guess it was a combination of good engineering and luck, lots of luck (never ever had a first prototype errorless and straight to production). The installations were finished on time and are being used now to do all the public announcements. Now that I think about it, in between all that, I had also to do some repairs on another old installation and fix some issues in the biometrics thingie. What a madness.

I spent july doing some adjustments to the wireless mesh nets. The customers paid promptly (nice special requirement of the stimulus plan, they must pay you before they get paid by the central government, otherwise... you know... six months to one year), which means we would be able to close the year in the green.

So I needed some rest and time with my family and went on vacation for the whole month on august. The last month I've been working a bit more on the biometrics stuff and developing an asterisk based voice inbox for the PA system, which is a late special request by one of the customers, but makes a good addition to the feature list of the system (which I'm not sure matters at all because I think we're not selling any more for a long time, at least here in Spain). The outdoor IP amplifier is a good piece of engineering and there's a slight chance that could be sold to another company. We'll see.

As I said, we're on the green up to the end of 2010, but there's no income prospect for 2011. So, while now I have some time to work on dingux, and I intend to take it easy for the next months, I will be looking for a new job, new city, new country, not necessarily in that order :-)