How To: THETA Z1 OLED Customize Text

#1

The THETA Z1 comes with a 128x24 OLED display that you can display images and text on.

Using RICOH’s official documentation, I was able to quickly customize the display with theta360.guide branding. The documentation provides information on Broadcast Intent keys and values. If you are new to Broadcast Intent, see my article Simple Explanation of Broadcast Intent for RICOH THETA Development.

Code Example

If you are eager, this is the core code example in this tutorial:

    public class MainActivity extends PluginActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            setAutoClose(true);
            notificationAudioSelf();

            Intent oledIntentSet = new Intent("com.theta360.plugin.ACTION_OLED_DISPLAY_SET");
            oledIntentSet.putExtra("display", "plug-in");
            sendBroadcast(oledIntentSet);

            Intent oledIntent = new Intent("com.theta360.plugin.ACTION_OLED_TEXT_SHOW");
            oledIntent.putExtra("text-middle", "theta360.guide");
            oledIntent.putExtra("text-bottom", "great community");
            sendBroadcast(oledIntent);

        }
    }

Steps

Open Android Studio

Create Empty Activity

  • Create New Project
  • Create Empty Activity

Add pluginlibrary

Project: build.gradle

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://github.com/ricohapi/theta-plugin-library/raw/master/repository' }
        
    }
}
App: build.gradle

dependencies {
   ...
    implementation 'com.theta360:pluginlibrary:2.0.0'
}

Set MainActivity to extend PluginActivity

The rest of the steps refer to MainActivity.java

public class MainActivity extends PluginActivity {

You need to import PlugActivity with Alt-Enter.

Set plug-in to close

Put this line in onCreate

setAutoClose(true);

If the camera locks up. You can force close it by pressing the Wi-Fi button and holding down the power button.

Enable Plug-in to Control OLED

You need this step to allow the plug-in to control the OLED display. If you don’t set the display to “plug-in”, your intent to control the display will be ignored.

Intent oledIntentSet = new Intent("com.theta360.plugin.ACTION_OLED_DISPLAY_SET");
oledIntentSet.putExtra("display", "plug-in");
sendBroadcast(oledIntentSet);

Set Your Message

There are two lines. If you extend beyond the display, the text will scroll.

Intent oledIntent = new Intent("com.theta360.plugin.ACTION_OLED_TEXT_SHOW");
oledIntent.putExtra("text-middle", "theta360.guide");
oledIntent.putExtra("text-bottom", "great community");
sendBroadcast(oledIntent);

Congratulate Yourself!

Dream and Build

If you want to have fun and learn more about plug-in development, join the RICOH THETA Dream and Build Contest.

1 Like
How To: THETA Z1 Function Button Control
Overview of Application Development for the RICOH THETA Z1
#2

This is really cool. Shows a lot of potential for communicating info to the end user.

1 Like
#3

We can pull the settings information through the API and display whatever we want. Does the normal camera (not plug-in) display settings? I haven’t read the user manual yet. It doesn’t appear to be listed on this site yet: https://support.theta360.com/en/manual/

Have you seen the user manual for the THETA Z1? I’m curious on how to use the function button more effectively.

#4

Normal usage shows a fair amount of information. Setting for Shutter, Battery Level, Top 3 Active Plug-ins (which you can toggle through) and more. I’ll add some screenshots soon.

#5

Can you see additional settings? For example, my scuba one needs to show color temperature.

I’m also interested in showing this:
https://developers.theta360.com/en/docs/v2.1/api_reference/options/capture_interval.html