Hello FC community, It's time for another status update. Here are the current happenings:
======== Hardware ======== The hardware subproject (producing our own FCDEV3B modem boards for developers and tinkerers) is currently stalled. There was/is an anonymous company (anonymous as in I don't really know myself who they are for certain) who did a major part of the hardware design for us, but my last communication with them was on Feb 27, i.e., over a month ago. The most recent design files we got from them (on the FTP site, look for 20160227 in the filenames) still have a few outstanding defects in them - defects stemming from mistranslation in the PADS->Altium conversion to which I strenuously objected, but upon which they insisted - and my attempts to reach out to these folks and convince them to fix these last few remaining defects have been unsuccessful. Thus before we can order physical fabrication of the first batch of FCDEV3B PCBs, we need to find someone who would be able and willing to fix the outstanding defects in the PCB design. Specifically, we would need a PCB layout engineer who is very familiar with Altium Designer software (has to be Altium at this point because the almost-finished design we've got is in Altium PcbDoc format) and who would be willing to make a few edits to the FCDEV3B design under my guidance. As usually happens with such things, my attempts to find an able and willing person have been unsuccessful. Therefore, unless someone steps forward and volunteers their help, this subproject will remain on hold until I can save up $4000 in personal cash to pay SDPCB to redo the whole job from scratch in PADS, without Altium. The good news is that my personal financial situation has been improving, but it will still be several months before I have the requisite amount to spare. And just to be clear, the expense in question is NOT for physical PCB fabrication or parts or assembly or anything along those lines - instead it is purely for the *desk job* of getting the PCB design right. ================= Software/Firmware ================= On the sw/fw side, our greatest need right now is for a non-broken, correctly-fitting version of L1 that targets Calypso C035 DSP ROM version 3606 with Iota ABB and Rita RF and which we could integrate into our gcc-built GSM fw version in the place of the half-broken L1 which we have in there right now, the one I produced back in 2014 by taking the LoCosto L1 and massaging it until it *compiles* in the Calypso configuration. Fortunately though, I've been making really good progress with the deblobbing of L1 in TCS211. Anyone interested in following the progress of this subproject can see it in the tcs211-l1-reconst Hg repository on Bitbucket. Our only available version of TCS211 (build date 20070608, possibly the very last version which TI produced and supported for the Calypso) has all of L1 in binary objects, no C source, but it has all of the original *.h files (i.e., only *.c have been deleted), and it has all of the infrastructure for recompiling L1 objects from sources if these source files are somehow restored. So here is what I mean by L1 source reconstruction or deblobbing: I am taking L1 *.c modules from the available LoCosto source, I drop them, one module at a time, into the otherwise complete TCS211 environment (correct TCS211 versions of TI's compiler, makefile with compiler invokation lines and all header files), and I massage each individual module until it compiles into an object that is identical in all essential aspects (i.e., everything except timestamps and debug line numbers and the like) to the corresponding reference binary blob. If I can perform this reconstruction successfully for all modules that comprise TCS211 L1 (53 modules in total), the result can be essentially no worse than if we had the full original source for this TCS211 version of L1. Out of the 53 modules in total, a somewhat reduced subset with GPRS and L1TM excluded consists of 37 modules; once we have this reduced subset of 37 modules, it will make sense to attempt a migration of this reconstructed code into our gcc-built gsm-fw environment. And out of these needed 37 modules, I have 11 done so far. So it is not looking too bad. Once again, if you would like to see this work progress with your own eyes, follow the tcs211-l1-reconst repository on Bitbucket. ========================== How the community can help ========================== Division of labor is a good thing. Our overall project could certainly reach the big goal of a 100% libre phone sooner if we had additional developers besides just me. The problem, however, is that the tasks which I would be willing to hand off to others are the ones which no else seems to be willing and qualified to take on. The subproject I am working on right now - reconstruction of TCS211 L1 - is one which I would *not* be willing to hand off to anyone else. There is no way that anyone else would be able to do it with the same level of perfection which I produce in that realm and which I would expect of any other; this part is really a guildmaster's work. Same goes for all other core modem firmware work that will follow. Instead the subproject which I would be MOST willing and eager to hand off to someone else is the one which the community seems to be the LEAST interested in taking on: the hardware subproject, i.e., designing PCBs for FreeCalypso hardware objectives. If there were a qualified and committed person willing to take ownership of the hardware subdivision of FreeCalypso, I would gladly vest that person will full decision-making powers as to which PCB design software is to be used, whether to reuse an existing layout or to do a new one in each given case, and so forth, as long as the end result will do what I envision and as long as the person vested with these decision-making powers has demonstrated both his/her commitment to the project and his/her qualification to do the job right. But so far no one has stepped forth, hence I have to do double duty as both the sw/fw developer and the person responsible for the hardware. A lesser task which someone else could conceivably take on would be bringing the UI part of tcs211-c139 up to par. To refresh everyone's memory, back in November I produced a hacked-up version of TCS211 fw that runs on the Mot C139 in the phone UI configuration, i.e., it works on an untethered phone, without requiring a PC to be connected. But it is TI's demo/prototype UI code, and this UI code is very much of demo/prototype quality, *not* end product quality like their lower- level modem code. There are perfectly legitimate user operations like bringing up the last dialed number or reading stored SMS that cause the fw to crash and reboot the phone, and some essential features like managing LCD on/off status and battery charging are missing altogether. Barring a possible paid consulting arrangement (the cost of which would NOT be affordable to an ordinary individual), I am not willing to work on that stuff personally until I first finish what I perceive as being more important, i.e., deblobbing L1 in TCS211 and getting our gcc-built gsm-fw to work no worse than the Windows-built blob-laden one - in other words, the work to fix the UI bugs is necessary toward the end goal of a 100% libre dumbphone and I will get around to it eventually, but my approach is to do other parts first. Therefore, if you would like to contribute to FreeCalypso, you don't have the most desired-by-me PCB design skills to take over the hardware subproject, but do have some C coding skills, one smaller subproject you could consider taking on would be improving the UI situation in tcs211-c139. This code is all C source, no blobs, hence no ARM assembly or reverse engineering skills are needed, but you would need to study the code and familiarize yourself with the architecture of TI's UI code (the part which I haven't closely studied myself yet; I only got the sans-UI modem fw architecture covered), and you would need to be willing to work with the Wine environment required in order to recompile TCS211-based firmwares. You would need to be able to make your experimental code changes, recompile the fw with them, flash your experimental code into a C139 phone and test it there, and you would need to be able to repeat these steps rapidly over and over on your own, with me being there to hand-hold you only the first time. Hasta la Victoria, Siempre, Mychaela _______________________________________________ Community mailing list Community@freecalypso.org https://www.freecalypso.org/mailman/listinfo/community