Reducing the C0's power consumption

Moderators: mdrjr, odroid

Reducing the C0's power consumption

Unread postby 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
Christopher
 
Posts: 2
Joined: Sat Feb 18, 2017 9:57 pm
languages_spoken: english
ODROIDs: C0/C1/C2

Re: Reducing the C0's power consumption

Unread postby 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/blob/master/boot.ini#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
crashoverride
 
Posts: 3113
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Reducing the C0's power consumption

Unread postby 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.
dchang0
 
Posts: 107
Joined: Tue Dec 22, 2015 1:29 pm
languages_spoken: english
ODROIDs: C1+, XU4Q


Return to General Chat

Who is online

Users browsing this forum: No registered users and 2 guests