Reducing the C0's power consumption

Post Reply
Christopher
Posts: 2
Joined: Sat Feb 18, 2017 9:57 pm
languages_spoken: english
ODROIDs: C0/C1/C2
Has thanked: 0
Been thanked: 0
Contact:

Reducing the C0's power consumption

Unread post by Christopher » Sat Feb 18, 2017 10:11 pm

Hi,

I'm currently working on a handheld based on the C0 + 3.2 inch TFT shield. My application only uses the two USB Ports, the charger and the display.

The software I'm running is pretty simple, basically some python scripts that gather data from sensors and display that. This leads to very low CPU loads, so I got a couple of questions.

1) Is it possible to switch off single cores? Can I underclock the remaining core?
2) Is it possible to deactivate the whole HDMI section?
3) Do I need the GPU for the SPI driven display? If I don't need it, can I disable or underclock it?
4) Is there a minimal ubuntu system image with lightweight x system for the C0?
5) Is there a way to shut the system down gently with a power button?
6) Does the 3.2 inch display support some kind of "off" state? (Maybe by putting it in reset state using PIN13? Will it work afterwards?)
7) Is there a schematic for the display module?

Thanks for your support!

Best regards

Christopher

crashoverride
Posts: 4459
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 52 times
Contact:

Re: Reducing the C0's power consumption

Unread post by crashoverride » Sat Feb 18, 2017 11:20 pm

Christopher wrote:1) Is it possible to switch off single cores? Can I underclock the remaining core?
The procedure should be the same for any linux PC.

For example to disable cpu1:

Code: Select all

echo 0 | sudo tee /sys/devices/system/cpu/cpu1/online
To re-enable:

Code: Select all

echo 1 | sudo tee /sys/devices/system/cpu/cpu1/online
CPUs are numbered 0 to 3. You can not disable CPU0.

You can confirm in dmesg:

Code: Select all

[86696.500790] IRQ93 no longer affine to CPU1
[86696.501155] CPU1: shutdown

Code: Select all

[86968.395163] CPU1: Booted secondary processor
You should be able to set CPU frequency with 'cpufreq-set' (example for 1Ghz):

Code: Select all

sudo cpufreq-set -f 1000000
(Note that someone will need to confirm the effects of the above with actual measurement.)
Christopher wrote:2) Is it possible to deactivate the whole HDMI section?
This can be done by editing boot.ini:
https://github.com/mdrjr/c1_bootini/blo ... ni#L63-L71

Code: Select all

# Disable VPU (Video decoding engine, Saves RAM!!!)
# 0 = disabled
# 1 = enabled
setenv vpu "1"

# Disable HDMI Output (Again, saves ram!)
# 0 = disabled
# 1 = enabled
setenv hdmioutput "1"
Christopher wrote:3) Do I need the GPU for the SPI driven display? If I don't need it, can I disable or underclock it?
The GPU (Mali) should be power gated. If you do not use it, it should not draw power. Again, someone will need to confirm this with measurements.
Christopher wrote:4) Is there a minimal ubuntu system image with lightweight x system for the C0?
"Lightweight" is subjective. There is nothing "lightweight" about X11 in the traditional sense. For a minimal footprint, use a "buildroot" image. (Search the forum for more info). For Ubuntu, the packages make it more complicated and the footprint depends on desktop environment chosen.
Christopher wrote:5) Is there a way to shut the system down gently with a power button?
Yes. Searching the forums should answer in detail. The short version is to run "shutdown -h now" when a GPIO pin meets a condition.
Christopher wrote:6) Does the 3.2 inch display support some kind of "off" state? (Maybe by putting it in reset state using PIN13? Will it work afterwards?)
The LCD controller on the display supports low power states (command). I do not know whether that is used or not in the driver for it.
[edit]
The backlight on the 3.2" display is likely always on. The 3.5" has PWM control of the backlight for reducing power.
Christopher wrote:7) Is there a schematic for the display module?
I am not aware of a schematic, but pin information is available here:
http://odroid.com/dokuwiki/doku.php?id=en:c1_lcdshield

dchang0
Posts: 125
Joined: Tue Dec 22, 2015 1:29 pm
languages_spoken: english
ODROIDs: C1+, XU4Q
Has thanked: 1 time
Been thanked: 0
Contact:

Re: Reducing the C0's power consumption

Unread post by dchang0 » Sun Jul 02, 2017 6:46 am

I had the same need to reduce power consumption for a portable project a while ago. At the time, the 3.2 TFT w/ touchscreen was all that was available, and we did not figure out how to turn off or dim the backlight, so we just bought a huge battery pack to charge everything.

Now that various users including myself have verified that small I2C monochrome 128x64 OLED displays work with the ODROID C series using Luma.OLED drivers, maybe you can switch from your TFT to an OLED. You can display a few lines of text or draw graphics to make a simple UI using Python.

If you need buttons to control your project, the Adafruit 3531 128x64 OLED bonnet includes two buttons and a 5-way joystick in addition to the display. You could develop a simple menu system for tasks such as shutdown, etc., all with just one board sitting on top. I've figured out how to read the buttons using HardKernel's port of wiringPi 2; the pin numbers corresponding to the buttons and joystick are in another thread.

I have yet to try one myself, but Digole makes I2C/SPI color OLED displays if you need full color. They do not include buttons, but you could just as easily get an Adafruit button or joystick or thumbstick breakout board for controls.

Post Reply

Return to “General Topics”

Who is online

Users browsing this forum: No registered users and 2 guests