Last known issue fixed!
As mentioned before, I met with Nikolaus for a day in order to find one of the most annoying issues we had with the prototypes: Power supply. And as usual, the fix is just adding two lines of code...
1. The problem with the power supply ------------------------------------
Here is a summary of the issues we had:
* Charging was unreliable when the unit was running. Sometimes it was charging slowly, sometimes it just didn't charge at all. * Running without a battery was even more unreliable. With a 5V 2A USB AC Adaptor, it crashed most of the times during the boot, sometimes it booted but froze shortly afterwards... * The most reliable way to run it was using an AC Adaptor together with a battery. * Without a screen attached, it booted up reliable all the time. * With some AC Adaptors (i.e. Nikolaus' one) it also was a lot more reliable.
So clearly, it sounded like we really had some issues with the internal power circuit. But what could it be?
Is the connector between the CPU board and the mainboard a problem? Does one of the traces have a too high resistance and causes the power to break down?
There are many, many different possibilities with such a complex system. It could be the charger chip, the battery monitor, the PALMAS (power supply chip of the OMAP5), the traces itself, a software configuration issue, etc.
It puzzled us for quite a long time now and was the main reason we didn't send out more prototype units to software developers yet.
And now, we fixed it.
What was wrong and how did we find it out? Read on for the details or jump to the end of the paragraph to read on.
-------------------------------------------------------------
Well, the main idea actually came when some developers using the EVM (OMAP5 evaluation board) reported some instability with some kernel versions. However, others (like aTc, TrashyMGs and my own one) was still running reliable. So what was the difference?
The difference was that everyone who had stability issues used a 5V power source while everyone else used a 12V power source.
Then TrashyMG made a few tests with a bench power supply, finding out that it runs stable with 6V, but the lower you go, the more unreliable it runs.
Well, the power supply of the Pyra is totally different, so it COULD have something to do with it, but most probably not. And yes, in fact, it's not the same issue, but very similar.
However, this gave me the idea to create an USB adaptor for my bench power supply and connect the Pyra from it. The power supply can easily provide 5V with 6A, so more than enough for the Pyra.
The results for the tests were interesting:
* While running, the Ampere the Pyra pulled was somehow limited to 1.3A. * With 5.5V (and without a battery), the Pyra was booting up reliable! So VERY similar to the EVM.
Okay, 5.5V with 1.3A clearly provides more power than 5V with 1.3A. But why does the charger chip limit the current? We already changed the parameter so that it allowed to pull 2A out of the USB port.
With these results, I met with Nikolaus.
After a few hours, Nikolaus had a very good idea: A USB cable (especially cheap ones) have a resistance. Often 0.5 - 1 Ohm, which means that with each Ampere used, the voltage drops by 0.5 - 1V. And indeed, measuring the voltage at the end of the USB cable showed that it only had 4.4V going into the Pyra - whereas the AC adaptor provided a stable 5V.
Hmm... which gave us another idea... one look at the datasheet of the charger chip confirmed our idea: There is a MINIMUM voltage allowed - and that's set to 4.36V per default.
Well... that explains why the Pyra didn't draw more than 1.3A. If it did, the voltage would've dropped lower - below the minimum voltage setting.
So here is what happened:
* The AC Adaptor provided 5V with maximum 2A. * Because of the inner resistance of the USB cable, the voltage dropped to 4.4V when drawing 1.3A. * Booting always needs a lot of power (as it initializes all the hardware). As the charger chip didn't get enough power from the AC adaptor (because of the minimum voltage setting), it tried to get the remaining needed power from the battery - which wasn't there. This of course lead to a lot of instability and freezes.
And the fix? Well, according to the datasheet, the charger chip minimum voltage setting can be lowered to 3.7V. That would mean that it would be able to draw more power from the AC Adaptor. Changing that setting are two lines in U-Boot... and Nikolaus added those and sent me the new U-Boot.
-------------------------------------------------------------
Well, the result:
I was able to run my Pyra without battery from a stock 5V USB AC Adaptor without any instability. I tried to max it out: Running a high-load script while running apt-get upgrade while playing around with GIMP. All LEDs and the LCD brightness was also set to maximum and it was one of the units where the SSD was still included and which has wrong resistors for the LEDs, meaning the power usage of those also is 10 times as high as it should.
I let it run for 1 1/2 hours without any issues.
So yes, that last remaining known issue is now fixed as well! And it was a very troublesome issue, as it could've been anything. I'm really relieved it turned out to be a simple change in the configuration in the end...
2. Why the numbers of preorders suddenly went down --------------------------------------------------
I didn't really want to say much about that, but as some were asking whether we suddenly got so many cancellations... nope, that's not it :) Here's what's happened:
As you know, we offer various payment methods, for example a bank transfer. Unlike credit card payment, a bank transfer needs to be done manually by the customer, it's not automatic.
All I did was delete all the orders of customers who preordered but never actually did the payment (from May 1st until August 1st). And those were about 20 orders. So no cancellations, just preorders that never have been paid.
3. What's left? ---------------
Well, it seems we fixed all the hardware issues we found. The bare CPU boards are expected to arrive around October 20th, we'll produce 30 more prototypes then, these will be enough for more devs and the Prototype orders.
The case is currently getting the remaining tweaks, the keymat as well... well, that's it.
We're getting closer :D
And I'll keep you informed - as usual!
Want to discuss about that? Check the thread at the boards here: https://pyra-handheld.com/boards/threads/last-known-issue-fixed.78253/