Showing posts with label Odroid. Show all posts
Showing posts with label Odroid. Show all posts

Tuesday, September 8, 2015

DC Power Conversion

With so much interest in mobile electronics these days, Makers are tossing aside their long despised AC adapters and turning to DC power. Unfortunately, DC sources tend to fluctuate or be comprised of cells that produce voltages not directly usable by most electronics. It's relatively easy to reduce voltage by converting electrical energy to heat, but it's hard to find applications where efficiency isn't a factor. Efficient switched power conversion is gradually replacing inefficient linear voltage regulation.

Terminology


It's useful to know a few terms to understand the type of voltage conversion performed by devices.
  • Linear voltage regulation / conversion. A continuously regulating voltage divider (inefficiently) down-regulates voltage.
  • Switching voltage conversion. Current is rapidly switched to step voltage up or down.
  • Buck converter. This is a switching converter that reduces voltage to a desired level. In some converters the output voltage may be configurable but it will always be less than the input by some margin.
  • Boost converter. This is a switching converter that raises voltage to a desired level. A common use would be running 5V electronics from a 3.7V Li-Ion or Li-Po battery.
  • Buck-boost converter. This flexible switching converter can either raise or lower voltage to match the desired output.
A sampling of fixed and variable voltage converters.

Real World Examples


So let's say we want to power a tiny computer like the Raspberry Pi or a microcontroller board like Arduino from a 12V source.


Raspberry Pi


The Pi requires regulated 5V input through its Micro USB power connector. This allows the use of ubiquitous AC to Micro USB charging adapters and eliminates the need for a 5V regulator on the Pi. In hindsight, these were very questionable choices. Many existing chargers could not supply sufficient current for the Pi, and no onboard 5V regulation makes the Pi harder to run directly from a DC source. This has all been a big enough problem that there are now quite a few DC to 5V power boards designed to meet the specific requirements of the Raspberry Pi.

With the USB connector unplugged there seems to be no problem supplying regulated 5V power directly through the Pi's 5V header pin.

This Pi 2 works great off a tiny buck converter.

I'm happily running my Pi 2 using the tiny Adafruit "UBEC" buck converter pictured above. It's almost like the connector was specifically intended to provide power directly to the 5V rail of the Pi. (It almost certainly was.)

Arduino


Most Arduinos and clones are pleasantly flexible regarding DC input. The USB connector can be used to supply regulated 5V. The 2.1mm barrel jack is specified to accept 7-12V which is passed through a linear regulator to provide 5V. Considering what we know about linear regulators, it's better to stick toward the lower side of that range. A small number of 'duinos, like the Freaduino Mega2560 pictured below, feature an onboard switching regulator that can handle more than 20V. Finally, a regulated 5V supply may be tied to the internal 5V rail via the header pin.

Exotic "Freaduino" with onboard switching regulator.

I specifically sought out and bought my Freaduino so I could pass 12V (automotive) power into the barrel jack with minimal losses. Given a more typical 'duino, a variable buck converter set to ~7V and passed into the barrel jack would be a fine approach.

Odroid


Although not as popular as the Pi and 'duinos, the Odroid is a very capable yet inexpensive tiny computing platform. Please refer to my writeup on the new ODROID-XU4. This Odroid specifies power requirements as a beefy 4A of current at 5V. A fixed 5V 5A buck converter did not result in a stable system. The AC adapter output measures 5.15V with no load. The fixed 5V converter either droops enough under load or 5V isn't quite enough to stably run the Odroid. Fortunately I had a DROK 5A adjustable buck converter that worked flawlessly when set to 5.2V. I may actually write a review of this converter, as it has some interesting features. These include limited rate battery charging and voltage and current monitoring over an asynchronous serial interface.

Friday, July 31, 2015

Carputer 2015 - ODROID-XU4 SBC

The carputer project is still ongoing, just vanished down a rabbit hole for a few weeks. As it turns out, the Android OS environment is simply more compatible, stable, and easier to manage on ARM platforms than x86 PC platforms. Duh, right?

The Carputer is Dead, Long Live The Carputer!


The Carputer 2015 frontend is now powered by a US$74.00 ODROID-XU4. This capable little board contains, at its heart, the same Exynos 5422 SoC as the international variant of the Samsung Galaxy S5 smartphone. This places it a notch below 2015's flagship devices, but in a completely different class than low-cost boards like the Raspberry Pi 2 and BeagleBone Black.

Hardkernel ODROID-XU4 ARM SBC

Ordering the Odroid and accessories from ameriDroid went flawlessly. The order arrived quickly, well-packaged, and complete. There was even a little handwritten "thank you" note. Other Asian manufacturers would do well to emulate Hardkernel's American distribution channel.

What's on (the) Board?


It should be evident from the picture that there's a lot of I/O on this little board. So here's what we have:
  • Samsung Exynos 5422 SoC, 8 cores, 2 GB, graphics
    AnandTech provides some quick analysis and comparison.
  • Heat sink and fan
    The PWM-controlled fan kicks in as needed. I have yet to see it move.
  • Power switch
    Pulls the board out of sleep state. The board powers on automatically.
  • 2x USB 3.0 host ports
    These share an internal 2 port hub.
  • 1x GigE Ethernet port
    A wonderful and rare feature for ARM SBCs! Internally, this runs off a dedicated USB 3.0 channel.
  • 1x USB 2.0 host port
    Is this connected via an internal hub? Directly connected, no hub.
  • Full-size HDMI connector
    Nicely enough, this supports digital audio output and CEC.
  • DC power jack
    Input is specified as 5V at up to 4A. 4 amps is a lot for a small board.
  • Standard microSD card slot
  • Connector for eMMC module (underside of board)
    This supports fast 5.0 modules!
  • Boot selector switch (microSD or eMMC)
  • Serial console connector (requires cable)
  • Connector for RTC battery
    Nicely done to leave the battery off the board but easy to add!
  • Headers for digital, analog, and bus I/O
Hardkernel did a great job with the design of this board. Pretty much everything is there, and in a form that doesn't require adapters. It does bear mentioning the few features that are missing:
  • No analog audio in/out
    Digital audio is supported via HDMI, USB, and I2S headers.
  • No wireless anything
    You'll need to add WiFi, Bluetooth, GPS, etc. if you want them.
  • No USB client port
  • No power monitoring or battery management
    Some other models of Odroid have power monitoring.
Again, it was a logical choice to leave out noisy radios and audio conversion.

What about Android?


Hardkernel sells eMMC modules and microSD cards preloaded with Android or Linux. Currently shipped versions appear to be Android 4.4 KitKat and Ubuntu 15.04. Disclaimer: I have not yet tried Linux on Odroid. Android images appear to be customized versions of CyanogenMod. After playing around a bit with 4.4, I soon upgraded to the community supported 5.1 and installed the Google Apps.

The carputer plan is to use HDMI audio output and a USB microphone. Digital audio was one of those things that just didn't want to work on Android-x86. I have a Blue Tiki USB microphone that is quite good at filtering noise from voice input. This mic also provides a (semi-useless?) output channel that confuses the Android audio subsystem. This results in USB audio in or HDMI audio out, pick one. Thankfully this has a quick solution under Android 5.x. Editing the audio_policy.conf file to comment out the USB audio output section gave the desired result. Multiple audio device support remains problematic in Android.

The long-promised in-car demo shouldn't have to wait much longer!