Last known issue fixed


EvilDragon

Administrator
Staff member
Joined
Mar 4, 2003
Messages
29,986
Age
47
Location
Ingolstadt
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 the spoiler if you're interested in the details :)

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!
 
As usual.
Getting the remaining tweaks for about a year now...

Umm... creation of the basic molds has started November last year, which is not even a year ago.
And tweaks can't happen before the molds are finished ;)
[doublepost=1475348206,1475348191][/doublepost]
awesome! please also keep us updated on the TILER @zmatt
thanks for your hard work everybody!

Hm? It's already fully working, what update do you need? :)
 
I hope that the charging port does not try to draw 2A from a standard USB port. For standard USB ports, you are not supposed to draw more that 100 mA without negotiating. Once you negotiate, you are allowed to draw 500 mA. USB 3 extends that to 900mA. Chargers identify themselves with resistors on the data lines, some allow 1A, and some allow 2A.
There are far too many devices that ignore these rules and just try to draw as much as they can. I hope the Pyra will not be one of them.
 
I hope that the charging port does not try to draw 2A from a standard USB port. For standard USB ports, you are not supposed to draw more that 100 mA without negotiating. Once you negotiate, you are allowed to draw 500 mA. USB 3 extends that to 900mA. Chargers identify themselves with resistors on the data lines, some allow 1A, and some allow 2A.
There are far too many devices that ignore these rules and just try to draw as much as they can. I hope the Pyra will not be one of them.

That's fully software controlled. Our current setting should only be used if a USB cable without any negotiation (means: only AC power) is connected.
But it should also be possible to make that user configurable, so anyone could change it according to his needs :)
 
Thanks for the update, good job on fixing the issue.
Running the Pyra purely from USB is a plus, you never know when you need that but when you do you're happy it's supported.
 
USB cables tend on the whole to be really dire (I mean really very dire), look for one with a decent gauge of wire (minimum around 24ish gauge - and that's only 0.5mm smaller gauge is larger diameter), its worth buying one of those cheap USB voltage/amperage meters but put it after the wire - next to the device, they're probably not that accurate but good enough to weed out your problem cables...

I have previously given up trying to solder a custom cable where the "wire" is literally 2 or 3 copper strands... basically useless

Ones where there is significant voltage drop just throw away, under volt-ing can impact the life of electronics and batteries...
 
Hm? [TILER]'s already fully working, what update do you need? :)
oh, huh, i thought zmatt said things were a bit hacky at the moment, and not completely satisfactory for all purposes. but i suppose "working" is always a step in the right direction, and further improvements can always be made.

@EvilDragon have i missed any updates about the 4GB ram working well? (i mean, i know it was theoretically possible, just not sure if it had been physically checked yet.)
 
Thanks for the update, good job on fixing the issue.
Running the Pyra purely from USB is a plus, you never know when you need that but when you do you're happy it's supported.

It's not only that: As mentioned, charging while using the unit would mostly be impossible as well.
 
Very nice to read that it was possible to solve the issue just per Software and it was not an Hardware issue. :)

As usual.
Getting the remaining tweaks for about a year now...
Hey, I wanted to wrote exactly the same! xD

Umm... creation of the basic molds has started November last year, which is not even a year ago.
And tweaks can't happen before the molds are finished
Well, if it is normal that such molds take almost a year to finish, worth to ask if this is the usual schedule in this molding company. ;) But let me guess, they explained that the Pyra mold was by far the most complex thing, they evert did. |-)
 
Last edited:
Is there an alternative option to power off the screen and/or underclock the CPU during boot so it can start with merely standard USB 500mA power? (preferably auto-detecting what it has power available to do..)

Are you sure letting the voltage drop to 3.7 V is safe? or could we end up melting some USB cables with that? (dunno anything about power, but I've melted some ATX PSU cables by drawing too much..)

Also, what if I have USB cables that deliver less than 3.7 V normally? (they're very long...) :|
 
@EvilDragon
Curious... Pyra can now operate & charge from either microUSB or micro USB 3.0?

What if both are connected to separate 2A capable 5VDC power supplies? Does it pick one or simply treat them as a parallel supply?
 
Back
Top