Development / Q&A | OrangePi Neo-01

With FOSDEM 2024 we were able to showcase some of our prototypes of OrangePi Neo. We as a company worked since May 2023 together with OrangePi on that project. In this post we update you on the development status and which features we already managed to get working.

Introducing the Future of Gaming!

Experience the ultimate gaming hardware on Linux-based handheld devices with the OrangePi Neo powered by the Manjaro operating system. Equipped with a Dual Intelligent Touchpad, immerse yourself in seamless gaming with precise touch points and intuitive swipe gestures. Enhance your gaming precision and immersion with native mouse simulation and gyroscope support.

Personalize your gaming experience with customizable key mapping for keyboard, mouse, and system functions. The OrangePi Neo isn’t just a portable handheld console; it’s also a slim Desktop personal computer. Seamlessly switch between the Manjaro Plasma Desktop and Gamescope mode for optimal gaming performance.

Redefine gaming innovation in the palm of your hand. With open-source software, the possibilities for updates and customization are endless, ensuring you get the most out of your hardware.

How does Manjaro work on the OrangePi Neo?

Well, it will be the first ALPM-free version of Manjaro with focus on flatpaks to add additional software. As desktop environment we have chosen Plasma 5 but might adopt Plasma 6 when released. Having an immutable OS is needed for this product. Also user don’t have to track dependencies and other issues you may have with a rolling release model. You can simply update your system via the SteamUI and install additional packages via Discover from the desktop mode. We will provide several update channels for you to choose from. This way you can even help us to find bugs before the stable channel gets the updates. Also SteamUI gets monthly updates similar as on the Steamdeck.

What extra packages are used?

We use a special patched version of gamescope, handygccs, OpenGamepadUI, and hhd to support the integrated gyroscope. With some additional scripts and tools we create the Gaming Edition of Manjaro, which launches into the Steam OOBE mode for first run wizard. This way it is easy for the user to setup the device.

What functions work already on the prototype?

Since the OrangePi Neo-01 is a Linux first device, we made clear to only add Linux supported hardware to the device. For the gyroscope the BOSCH 260 was chosen. Initial support is already given via hhd. So we have full control over the controllers, via handycon or hhd, which adds additional features like gyro and RGB control (still work in progress). Via gamescope swipe gestures got implemented, which open QAM and the Steam Menu, even in-game. Power button and Audio control work out of the box.

What functions we still work on?

  • RGB control still needs to be added to hhd or a dedicated application
  • TDP control might work via OpenGamepadUI overlay mode
  • controller support still needs to be added to OpenGamepadUI
  • fan curves and battery control needs to be optimized
  • Audio Equalizer might still need some work to improve audio quality
  • Standby and Sleep needs some work in software and firmware to properly work

When I tested the prototype, I noticed the controllers. Were those the final ones?

The controllers used on the prototype we showcased at Fosdem 2024 were design previews and not the final ones. The final product will ship with an all in one Multi-Function Gaming Controller with Hall Sensing Joysticks, RGB Lighting and Linear Hall Triggers. This way you can expect one of the best gaming experience the market currently offers.

When can I expect the final product?

Currently the aim is to release the final product in Q2 2024. We keep you all updated via social media channels and this thread.

Can I change the SSD myself?

Yes, since we support regular M2 2280 NMVe disk from 512 GB up to 2 TB changing those will be easy.

What price I can expect?

Base Model 7840u 16GB/512GB will be 499$ or 4099 CNY
Base Model 8840u 16GB/512GB will be 599$ or 4499 CNY

Which markets you expect to sell?

The aim is for Western market and also China


Development Log - KW7

All about RGB! RGB control is currently done via firmware. So you can control RGB like this:

  1. Switch light effect: In the default state, it is constant bright mode, press [Game-Shortcut (Button 6) + DPad direction key] to switch the light mode, and the mode switching order is constant bright-breathing-flashing-rainbow breathing-gradient-rainbow loop;

  2. Turn on and off the light: press [Game-Shortcut (Button 6) + DPad direction key] to turn off/turn on the light. Every time you turn it off, you will continue to use the mode before turning off the light;

  3. Hengliang mode:. In constant bright mode, the left and right rocker lights are always on. Press [Game-Shortcut (Button 6) + DPad direction key left] to switch the left rocker light, and press [Game-Shortcut (Button 6) + DPad direction key right] to switch the right rocker light. The default state is blue on both sides, and the switching order is: blue-orange-red-pink-yellow-green-green;

  4. Breathing mode: In Hengliang mode, press [Game-Shortcut (Button 6) + DPad direction key] to enter the breathing mode. The default is a seven-color cycle effect. Press [Game-Shortcut (Button 6) + DPad direction key left/right] to switch the color. The switching order is: cycle-blue-orange-red-pink-yellow-green-green;

  5. Flashing mode: Press [Game-Shortcut (Button 6) + DPad direction key] in breathing mode to enter flashing mode. The light turns on together and then gradually turns off. The frequency is controlled within 1S. The color continues the color of the breathing mode. Press [Game-Shortcut (Button 6) + DPad direction key left/right] to switch the color. The switching order is: cycle-blue-orange-red- Pink-yellow-green-green;

  6. Rainbow breathing mode: Press [Game-Shortcut (Button 6) + DPad direction key] in flashing mode to enter the rainbow breathing mode. The color is fixed to blue + green + yellow + red, the left and right rocker lights are the same color, breathing effect;

  7. Gradient mode: Press [Game-Shortcut (Button 6) + DPad direction key] in the rainbow breathing mode to enter the gradient mode. The color of the left and right rocker lamps is synchronized, and the cycle changes from blue according to the spectral color;

  8. Rainbow loop mode: Press [Game-Shortcut (Button 6) + DPad direction key] in the gradient mode to enter the rainbow mode. The left and right joysticks are the same color, and each of the eight lights present different colors, forming an aperture discoloration flow effect. After a circle of flow, the light is briefly extinguished, and then the repeated flow effect is lit again;

We will look into on how we may expose direct RGB access so applications like hhd and OpenRGB to control it directly.

Also we managed to get Gyro working via hhd and Dual Sense emulation.

Development Log - KW8 - KW9

The last two weeks we had two focus areas for the OrangePi Neo:

  • getting an easy way to change controller emulation and access TDP control
  • enhance the OS update system to make it more robust.

O boy, we achieved that both!

Getting things immutable

When browsing twitter I came across this post from Its FOSS mid KW8. After reading the article I browsed the project to know more. This was exactly the tech which might make the Neo fly. Having the latest tech like: systemd-boot, dracut, BTRFS subvolumes and a nice OS update system - it simply ticked all my check boxes. Hence I reached out to Dennis to talk about technology and what if this approach could be used in a consumer product in near future. We clicked and worked more than 8 days to improve things. My work can be followed partly here. I managed to make it on-pair with the solution I used before for the Neo. Now we will polish the experience as we go along.

The result will be a new way to distribute and build Manjaro on devices like a Linux Gaming Handheld. We also will spin regular immutable Manjaro Editions. Expect some profiles soon.

Make controls easy adjustable

Next on my to-do list was to make switching between controller emulation very easy. Together with Antheas we shacked things up and used transparency, gamescope overlay and touch control to provide an easy way to have access to controls and TDP.

With a double-tap on Game-Shortcut (Button 6) hhd will launch in the overlay mode. There we can control the quick settings of TDP and the Controller. When we expand the view we have more option to all plugins of hhd.

With adjustor and hhd-ui we have now easy control to adjust speed and functions of the device. By selecting Dual Sense (Edge) we have now full control over the built-in Gyroscope. Games like Portal can make use of it already as shown earlier on Twitter.

Development Log - KW10 - KW12

Antheas improved his work on HHD, HHD-UI and Adjustor to add more features and more gaming handhelds to his solutions. One of the highlight was adding controller support, next to the already working touch support navigating the UI. Dennis worked on ARKDEP to improve things based on my findings. I optimized my profiles accordingly.

Since the OrangePi Neo had an issue with sleep and instantly woke up, I contacted Mario from AMD. He pointed me to the amd_s2idle, which gives you a good starting point to figure out why a device doesn’t suspend or sleep. So I suspected modern standby issue with the device. However Phoenix mobile doesn’t support s0i2, or S3. S0i3 is what it should be set to. So the default set by the firmware was correct. I was able to narrow it down to i2c-hid connected devices. When I unloaded
i2c-hid-acpi the device was able to sleep. As a workaround I added echo 'disabled' > /sys/bus/i2c/devices/i2c-FTCS1000:00/power/wakeup to ignore wakeup calls from the touchscreen panel.

Furkan started to look into Fan Curves. So the firmware team added values to adjust that in user space software. To get fan control going via userspace I added needed support for newer AMD SOCs to ryzen_smu. Derek added the needed things to the kernel, so we were able to adjust them as needed via hhfc.

image

We also moved over to Plasma 6 as desktop environment, which added nice improvements to the device.

The UEFI firmware gained also a nice OrangePi boot splash.

One of the bigger aspects was to improve controller support. Since the early prototypes ran Android Controller Firmware, we had to translate that to Xinput standard via handycon or hhd. So our aim was to get direct Xinput support done. This also improves the sensitivity from 8bit to 16bit. We also found a regression in Kernel 6.8 series regarding Synaptics touchpads. A workaround was to revert to 6.7 series until upstream fixes it. Also an issue with vibration motors stopping after 10 mins game play got fixed.

End of KW12 we did the price reveal in Shenzhen.

Development Log - KW13 and KW14

Since I was for couple of days in Shenzhen I could work closer with the OrangePi team together. One of the things we did was to recycle my Prototype I got for Fosdem 2024 presentation. We changed the Chassis, Controller parts and fixed some issues we found in PCBA and extension board. We also fixed firmware related to USB-C to be able to add an eGPU to the device. Since the touchscreen panel also has a feature to report Stylus battery status Plasma 6 reported it as a false battery. That issue got fixed in firmware after testing a temporary kernel patch to ignore that information. We also dedicated some time to test TDP and how that may affect tempratures of the device. With another MCU firmware update 2D vibration got added.

The OrangePi Neo will be the first Linux Gaming Handheld using InputPlumber to control gamepad and extra buttons plus touchpads. Basic support got added. Next steps are to support Gyro and Touchpads in one virtual device. The issue with the trackpads got fixed upstream meanwhile.

image

Plus we managed to get 120Hz working in Gamescope.

Development Log - KW15

Philip was with one Prototype in Hanoi at FossAsia. Together with people from KDE the OrangePi Neo was promotet in Vietnam.

Students at Posts and Telecommunications Institute of Technology had the opportunity to listen to Philip’s talk about how to port Linux to a Gaming Handheld.

Many people were intersted in the device. There might be a collaboration with 3mdeb to bring a FOSS-Firmware to the device, if there is customer demand to do so.

On software side development on InputPlumber picked up to get it integrated into OpenGamepadUI. Initial features are Rumble support, Xbox generic controller and DualSense edge emulation. Powerstation is currently only being used for APU TDP and CPU boost/SMT management. Eventually we will see governor selection, dGPU undervolting and Fan curves.

Development Log - KW16

Decent progress on integration of InputPlumber into OpenGamepadUI was made. UI can now be fully controled if the intercept mode gets manually triggered. Next steps will be loading default profiles for the different modes, automatically controlling intercept mode, and reincorporation of user profiles based on InputPlumber. It’s not yet in a state where we can let you test it, but hopefully soon.

With Arkdep we added a function to inhibit sleep when downloading OS image updates from our CDN network. We are also working on the ability to do migrations when we might change basic structure of our deployment method. This way the user gets updated to the latest features without manual intervention.

Development Log - KW17

Changes were made to PCB incluging usage of better materials for headphone jack, updates on touch pad wiring for power delivery, sleep issues with TF card, touchpad and touchscreen got fixed on hardware level, plus improvements for usage of the microphone without headphones attached. Additionally the cooling solution got reworked with updating the heatpipe and radiator system.

On Friday parts for 20 pcs PreProduction units got built and will be ready in about ten days after assembly. Some of those 20 pcs will be used to get certifications such as CE and FCC. Based on the current plan the 20 Units should be ready before 10th of May. From May 1 till 5 there is Chinese Holidays again. Then the units will be all tested. The current OS images default to HHD and HHD-UI for now to have it function for TDP and controllers.

An initial batch of 300 units is scheduled after PreProduction units had passed all tests. Most of those units will be reserved for news outlet reviews by Heise, Linus Media Group, Gardiner, SteamDad, Gamers Nexus, The Phawx, Steamdeck HQ and many more.

Development Log - KW18

Our focus in that week was to get InputPlumber working with OpenGamePadUI in Overlay Mode. Additionally we went so far to also theme the UI similar to the Steam Client by Valve.

On the hardware side most of the produced 20 units got assembled. Units are currently been tested to work fine on Windows 11 and Manjaro Gaming Edition. When test passed some of them get sent out to fellow developers to improve Software support on the device.

image

We updated the cooling system once again and improved how buttons are working.

Development Log - KW19

Since our OS image is designed as a Disk image we needed also a nice way to provide a OS recovery media via USB stick. All current solutions are based on some graphical or TUI based solution which most likely needs a mouse and a keyboard. This we wanted to avoid and decided to use Godot, a game engine, to create the installer. This way we can use touch, joysticks, dpads and buttons to navigate the UI. I uploaded a demo video recorded on the ASUS ROG ALLY to demo a keyboard-less install:

On controller support side the touchpad support code got prepared. As soon as we had distributed more sample devices to our developers, that feature will be integrated into InputPlumber.

On OS-side we updated our steamos-update script to be more robust and check for more error possibilities and catch them before they occur to the end user. We also implemented reading the images from stdin instead of extracting them to disk first. With resuming a download after a force quit, yet doing a normal shutdown through Steam while it updates will lock the client causing it to refuse to shut down. Improved failed deployment handling.

Based on the hardware engineering department, the following changes have been made in hardware design compared to the last prototype specifications.

Hardware modifications

Motherboard:

  • The screen cable seat is changed from 30pin to 32pin (reserved to upgrade the I2C of the screen cable FW)
  • Replaced the polarity of the onboard DMIC patch (the old version had it reversed, and the new version has corrected it)
  • The left panel connector PIN17 is changed from GND to the motherboard 3.3V power supply, and the right connector PIN17 is changed from VCC 5V to the motherboard 3.3V power supply (change the power supply of the small touch panel to solve the problem of non-functional touch after sleep)
  • The motherboard bit number USERKEY_GND is changed from GND to the signal KEY_CTRL, which is the signal from pin 16 of the left small board connector to pin 5 of the right small board connector (the custom key function is corrected, and the old version of the flying cable verification was OK)
  • Changed the headphone material to solve the problem of structural interference and inability to fully insert the headset jack
  • LED info indicator correction (the old version had incorrect packaging and the light did not light up. The new version has corrected it)
  • Removed the external pull-up resistor on the detection pin of the TF card reader (solve the problem of being unable to sleep)
  • Screen line update (solve the problem of blurry screen when waking up from sleep)

Small board:

  • The left small board bit number R_J6 was changed from GND to the KEY_CTRL signal, which is the signal from the 16 pin of the left small board connector to the 5 pin of the right small board connector (the custom key function is corrected, and the old version of the flying line verification was OK)
  • The power supply of the left and right touch pads is changed to 3.3A (to solve the problem of non-functional touch after sleep)
  • The left small plate/right small plate adjusts the linear motor gain resistance (increases the vibration intensity)
  • The direction keys on the left small board and the ABXY keys on the right small board correspond to pad replacement packages

Structure update:

  • The size of the internal buckles of the upper and lower shells has been modified to make them snap tighter
  • The size of the internal hooks of the left and right triggers (LT+RT) is finely adjusted to solve the problem of the triggers easily falling off
  • The shape of the left and right shoulder keys (LB+RB) has been modified to increase the protruding height and improve the operating feel
  • Fine-tuned the hardness of the soft rubber on each button to improve the pressing feel
  • Modified the shape of the shoulder key FPC conductive contact pad to improve the sensitivity of the left and right shoulder key press conduction
  • Modified the shape of the soft rubber contact pads of the direction keys and ABXY keys on the left and right panels to improve the sensitivity of the button press
  • Replaced the ear socket model on the motherboard so that the ear plug functions normally after being inserted
  • Spray painting, pad printing and appearance color adjustment were carried out according to mass production requirements
  • The appearance and shape of the air inlet on the rear shell has been slightly adjusted

Development Log - KW20

More work went into InputPlumber. LC/RC buttons didn’t respond for some odd reason. By changing some default settings this was however fixed. In an upcoming release the gyro scale & sensitivity will be adjustable with attributes in InputPlumber via a dbus interface. Slider options will be found in the overlay mode in the controller menu of OpenGamepadUI.

Our initial recovery image of Manjaro Gaming was completed. It features a smooth startup and shows the vendor logo on bootup via plymouth. Then it will seamlessly switch into our graphical installer, which can be controlled by the provided control options the OrangePi Neo provides (touchpad, touchscreen, controller). No keyboard, nor mouse is needed to navigate the installer. After a reboot of the device when the internal harddrive got filled you will land in Steam’s OOBE wizard to finish the device setup.

Since the new Chassis and Cooling system design is now present on the new sample units, intensive hardware testing was done by our engineers. During those tests the hottest surface spot was found. Now we are adjusting fan curves and max TDP to get it down to decent values which don’t impact performance much.

Additionally final works on the updated housing material of reinforced PPS with glass fiber is currently carried out in our factory in Shenzhen. This will make the chassis light and still robust to falls.

Packed will all what is going on, we also found some time to test-drive Star Wars Battlefront 2 on the Neo.

Development Log - KW21

The original plan was to produce 20 units in a small quantity, but currently 3 units have been produced last week. Some issues have been discovered and are being resolved. In this week remaining units got produced and are currently been assembled and tested at the factory.

neo-production

On software side we had these changes so far:

InputPlumber

Bug Fixes

  • CompositeDevice: resolve deadlock issues with switching profiles (8f569d2)
  • Mount Matrix: Update mount matrix for multiple devices. (94cabab)
  • Cargo: update to Rust v1.78.0 (7e3dcb8)
  • Intercept Mode: Fix using chords when intercept activation is one capability long (a3dc715)

Features

  • Manager: add config to ignore source devices from being managed (aee9d8f)

OpenGamepadUI

Small adjustments were added to make it work with Inputplumber.

On the weekend I managed to share 45 mins gameplay of Hellblade 2 on the Neo Prototype and gave some more insights on what changed in the upcoming Review-Units of the device.

8 Likes

How many grams does Orange Pi Neo weigh?

Will this Version of manjaro be locked down to this device or will we be able to Install this on Things Like the Steam Deck or even an HTPC?

2 Likes

If this thing can actually come to market at “the lower end of Steamdeck pricing” I’ll be very impressed, but I’m very sceptical.

2 Likes

This made my day :white_heart:

Small update on RGB control: For now the current implementation is via button combinations. We will provide a full video of it soon: https://twitter.com/fkardame/status/1758404407509565814

Default image will need flatpak packages, but users can install any OS on it.

Hi, will the battery be user-removable and/or externally charge-able? This will be required by EU from 2027 and also, I think, could make a serious advantage over competetive products. Not to mention prolonging the usability of the system (thus reducing it environmental impact by reducing e-waste), since these days the Li-ion battery is the first thing to noticeably degrade in mobile systems.

We designed the device to be easy repairable. No screws means no screws. The battery is replaceable as more or less most of the other components around the controller and so. I will discuss with OrangePi regarding replacement parts and how to get them out there.

2 Likes

No screws isn’t a good thing for repairability. No screws is probably a deal breaker for a lot of the target audience, me included.

Of course the device has screws. Those however are inside of the device, not on the chassis. Since the device is designed highly modular, a lot of parts can be repaired.

1 Like

But would I be able to Install the gaming edition of manjaro onto a HTPC or Steam Deck for example?

Mutable version only.

What’s the sRGB coverage of the display? It’s not listed and will probably be the deciding factor in whether I get it or the steam deck. I don’t need/want OLED but I still want decent color support.

Also will VRR/freesync be supported?

Will the 7840u model have an option for 32GB of ram?

Will the touchpads have the capacity for rebindable controls like the Steam Deck, where I can remap the four corners into a D-pad mapped to different keyboard controller buttons? Either in OpenGamepadUI or Steam Input/Big Picture?

Yes

No. The device has two laptop like touchpads you may find on devices from Dell, Lenovo, MSI or any other laptop manufacturer. It won’t have haptic, nor rumble and no extra mappings like the Steamdeck has. However we will see what we can do with them and how we combine them into the input controls.

Hello, can I find out why the sticks have the same arrangement as the Xbox controller? Why not make them opposite each other like a steam deck? Or is it all because of the Valve patent?

  1. When Orange Pi Neo will be available for purchase or pre-order?
  2. You say that user can replace m.2 ssd but i can’t understand that process in that case. Can you explain?
1 Like

Is there an estimate of when the immutable version of Manjaro OS will be available for desktop computer?