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 in a reverse order 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 6. 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.
Which extra packages are used?
We use a special patched version of gamescope, OpenGamepadUI, and inputplumber 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 worked 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 (replaced by inputplumber) 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.
Which functions we had to work on?
- TDP control got added to OpenGamepadUI overlay mode
- controller support still needs to be added to OpenGamepadUI
- fan curves and battery control needed to been optimized
- Standby and Sleep needed some work in software and firmware to properly work
- Emulating the SteamDeck controller profile as we ship with similar layout
What is still been worked on?
- Debranding of some hardcoded strings in the Steam Client (when possible)
- Audio Equalizer might still need some work to improve audio quality
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 Q1 2025. 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 sell it globally.
Development Log 2024
Read here about current development. Latest news you will find on the top. Older in reverse order.
KW40 - KW49
Here is what happened last month. With the Chinese national day holidays, our hardware engineers had a week off to relax and enjoyed some time with friends and family.
As mentioned earlier, OrangePi is working on optimizing the device based on the public testing, which was done by Chinese enthusiasts. The following improvements can be expected:
- Update the battery to support 1C fast charging. The battery will still be 50Wh.
- A new power adapter to support 1C fast charging will be added.
- Optimize sound quality and sound volume of the Speakers
- Further optimizations to overall thermal design of the device. This will include:
- optimizing the structure to ensure better heat dissipation
- lower FAN noise
- cooler surface temperatures on touchscreen and chassis
We hope to complete most of those tasks in November.
On software side of things we are working on optimizing Plasma 6.2 support on the OrangePi Neo. So far we had a good experience with it. The BOSCH BMI260 IMU chip, used for the monitor gyro, is currently in progress to been upstreamed. When completed, inputplumber and other key components like the Kernel need to be adjusted to support this new driver. For now we used our downstream patch. Inputplumber itself gained some releases to improve input control management. Also it is now officially maintained for Arch by Peter Jung (CachyOS/Archlinux). Suspend/Sleep issue with the SteamDeck Controller profile got finally fixed.
KW37 - KW39
The OrangePi Neo was reviewed by HandheldBOSS
Also the one-month public testing period for the Orange Pi Neo by Chinese enthusiasts has come to an end. Based on their feedback the device will be slightly optimized, which includes small structural changes, hardware and software optimizations and fine-tuning based on test results, such as:
- better heat dissipation
- improved controls and fan noise
Relevant optimizations have been reviewed and will most likely be verified after Chinese National Day vacations (1-7 October).
Additionally a new BIOS/EC combo was released to our internal testers.
- v1.17 (BIOS): Adjust the AC&DC power limit to 32w.
- v0.14 (EC): optimize fan logic
KW36
This week the OrangePi Neo is at IFA 2024 in Berlin. Those who want to have a hands-on experience can email us. We will be there also next week on Monday and Tuesday. Stefan, aka german Youtuber Steam Dad took a look at the device:
We are also testing another OS-Update to fix some regressions we had introduced and got notified by the QQ-Group testers. Release changelogs can be found here.
We are also started to benchmark the device more. With the new benchmark from Black Myth Wukong we can now check the latest Unreal Engine based games too.
Also a lot of work is concentrated around the cooling system of the device. We try to get great fan curves established so gameplay will be pleasant.
KW35
This week we concentrate on optimization of the cooling system. It is great to see that our sensor work got now accepted upstream. This way we can monitor and set fan curves also in user-space.
Our input translation solution now gained tab-to-click Additionally we now keep track of dbus event state to prevent duplicate events. Also usage of Systemd extensions got improved.
OpenGamepadUI got updated card spacing and an error on startup fixed.
On firmware side of things new BIOS and EC versions got released.
EC 0.13 modified the charging current and BIOS 1.16 adds the handheld key to enter the BIOS function and in BIOS navigation:
- The up, down, left, and right buttons on the controller correspond to the up, down, left, and right buttons on the keyboard.
- Controller Aâ>Keyboard Enter
- Controller Bâ>Keyboard ESC
- Controller Xâ>Keyboard Delete (shortcut key to enter the BIOS menu)
- Controller Yâ>Keyboard F7 (shortcut key to enter the boot device selection)
Additionally I managed with the help of Phong VĆ© to change the cooling system on my 8840u. Their services were free, so highly appreciated!
KW34
This week is all about gaming. For one: we are at gamescom to show of the OrangePi Neo. Second: most of our Chinese early adopter got their devices by now. Some of them got already busy to test it out and report things they may have found back to us. Others started to get more familiar with Manjaro, how the Steam client works and how to use Linux in general. We are looking forward to hear your feedback!
Those who are at Gamescom may check with Roman to have a look first hand.
We are also managed the following on software side:
- Default Profile: Adjust default profile. (75f312a)
- Logging: more specific log messages (6764698)
- XPad Bluetooth: resolve race condition if a device is quickly added, removed, and added again (eacfb49)
KW33
This week we are in full swing with producing the pre-production batch in both colour variants.
Quality tests run in parallel to shorten the production cycle. Therefore we decided to test the hardware fully on Linux to make sure all functions are working properly.
Some factory test items:
- All buttons/ Sticks
- Battery charging/charge indicator
- Two type-c ports
- Screen display, screen touch, screen lightness adjust
- L/R + touchpads
- Audio + Mic
- SD card slot
Software side of things the following was done:
OpengamepadUI
- Gamepad Profile: donât append âModifiedâ to profile name (0ebae62)
- GDExt: add gdextension module source (dacae43)
- GitHub: Apply suggestions from code review (17c6ceb)
- Target Devices: Dynamically add Capability Mappings (04acf6a)
We also added steam-powerbuttond to improve the handling of sleep, restart and power-off functions.
KW32
This week is all about the pre-production run of 280 units. Half of it is reserved for the Chinese market. There early adopters will get their devices shipped very soon. Therefore our factory workers will see to get assembly done and QA processed.
On software side of things we worked on a testing image for the factory. With that image the hardware can be checked and easily verified to be working.
We also had several releases of InputPlumber and OpengamepadUI. Now touchpads are supported also on profiles not having a trackpad or touchpad. There they will act as a regular mouse.
Display quirk was accepted upstream and will land in 6.11 kernel series. At some point you may find that quirk also on older kernel series.
KW31
This week we focused on the OS image we will send on Friday to the factory. We are about to produce 280 units of the OrangePi Neo this weekend. The assembly of the devices should be completed mid KW32. 140 units will get shipped out Mid-August to Chinese early adopters who participated in the QQ chatgroup campaign by OrangePi.
The OS image will include the experimental SteamDeck Controller profile. Early adopters will be warned that sleep is broken with the state of the software shipped with the devices.
However we managed to get the touchpads working for Dual Sense Edge controller emulation as a combined touchfield and the Xbox controller profiles as regular mouse.
Firmware updates get currently retested. Included changes are:
- Set up DPTC with BIOS
- Improve fixes for Steam OS audio issues
- Modify the touchpad ID to be OPI0001 on the left and OPI0002 on the right
- Support dynamic power consumption adjustment
On documentation side of things the user manual is currently under review.
KW30
This week we focused more on input controls on the Neo. Therefore we had several meetings with OrangePi and hardware suppliers, vendors and manufacturers.
The vendor of the Daughter PCB board offers a MCU package solution, which uses several components, including a IMU chip for gyro and motion controls. The used IMU chip may vary in that solution. That wonât matter, as long as its output is exposed to the protocol so other software can read and use it as input triggers.
At present, there are two forms on how the IMU data can be exposed:
- the gyroscope data is sent and controlled by the motherboard in firmware mode (e.g. emulating a Switch Controller);
- Simulate left/right 3D execution locally (e.g. thru Windows console). A Windows based gaming handheld usually use this second solution, through software + dll interface + underlying driver.
So we see if the vendor can expose the gyro data to a HID interface to have the raw data of it to process it further on our end via software solutions.
We are also in talks with the vendor to make it easier to flash the MCU firmware. The current firmware architecture needs to be modified and a the underlying driver (similar to the dll file of Windows) needs to be developed. Additionally the current firmware needs to been made into a double backup form, from the current ISP to ICP.
Now lets talk about InputPlumber. We managed to release several versions this week. Here are the highlights:
Bug Fixes
- Config: add ignore for unsupported handlers (dcc3e09)
- Config: compare actual product id (df0d2ae)
- Config: remove unsafe unwrap to get subsystem (f951c57)
- Device Discovery: Use inotify for add/remove events. (9f9a188)
- DualSense: add translation for dualsense touchpad (e133c89)
- Manager: use correct dbus path for removing source devices (f8c14f1)
- udev: use correct logic for looking up vendor and product (788ff9e)
Features
DS5: add support for Sony DS5 source device (c7ee211)
- InputManager: Switch to using udev for device discovery (214f99b)
Additionally, maybe also the biggest feature, is Steamdeck Controller emulation. So the OrangePi Neo will be the first device able to mimic the Steamdeck also in that regard.
It is the initial port we are currently testing. There might be some quirks to solve still ahead. Those who want to know more about this effort can follow development of it here: feat(SteamDeckTarget): add Steam Deck Controller target device through USB emulation by ShadowApex · Pull Request #160 · ShadowBlip/InputPlumber · GitHub
We also aim finally to produce the small batch of 300 pre-production units. Assembly of those is aimed for KW32. Half of those units will go to users and early adopters in Mainland China for early user feedback. Some of them we might also get send out to dedicated News outlets to test the waters there and some developers from our extended team.
KW29
We were brainstorming if we should drop the -steamdeck
flag from the steam cmd and run the UI in Big Picture Mode instead. The flag is highly hardcoded to the Steamdeck. On the first start the UI wizard will greet you similar to the Steamdeck. Also the games are verified against the Steamdeck and Great on Deck will be loaded in the Store page. Dropping the flag will remove controls to Mangohud and other neat features. In Big Picture Mode the initial UI wizard will act more generic. Also you have less options in the menu. To compensate that, we might need to add missing features to OpenGamepadUI.
The OrangePi Neo ships with two IMUs: main PCBïŒBMI260 daughter PCBïŒa variant of LSM6DS in a MCU package solution; daughter PCB for controller, main PCB for CPU/bios/screen..etc
So far we use the BMI260 to emulate gyro support for the Dual Sense (Edge) controller profile.
About the sound quality, OrangePi hardware engineer is improving the internal cavity sealing so the sound output might be of much better quality.
The Display Quirk is now upstreamed and will land in 6.11 or 6.12 kernel series.
The initial pre-production run of about 300 units got delayed: many modules are ready, now waiting for the screen, so maybe next week
On the software side of things we had following releases:
KW28
On software side we limited the TDP to 28 W max and 4 W for boost.
The following software releases we had so far in this week:
The following PRs we are currently testing on the Neo:
- feat(Disk Management): Add Disk Management
- chore(locale): update chinese localization
- fix(APU Database): Add ability to override APUEntry using DMI data
Also that week some pay roll info from Valve got leaked.
KW27
Hardware Engineers at OrangePi worked with the Firmware Engineering team to fix a higher power consumption on speakers. A new BIOS update lowered it to similar Windows values.
On software side InputPlumber gained the following improvements:
- Performance: Reduce poll rate for most source devices.
For OpenGamepadUI we had these changes:
- Input: add limited input mappings when not running InputPlumber
- Input: correctly map guide for non-inputplumber
- feat(Disk Management): Add Disk Management
- Adds UDisks2 DBus interface for managing storage media.
- Adds SteamRemovableMedia UI for managing storage media for Steam.
KW26
Since everything is lately about AI we put it to a test and let the OrangePi Neo 8840u do a CPU only fight similar as the ASUS ROG ALLY. Both used the same OS software stack during that test.
Since some of us test the new prototypes of the OrangePi Neo we also noticed the update of LB/RB buttons to be more outside of the chassis.
This gives it a slight better feeling and easier to reach.
On software side InputPlumber gained the following improvements:
- add support for touch events over DBus
- CompositeDevice: migrate to using composite device client
- CompositeDevice: move command enum to its own file
- Add GamepadAxisButtons capability to target gamepads on the OrangePi Neo
- XBox Elite: Add Microsoft X-Box One Elite pad target device.
For OpenGamepadUI we had these changes:
- APU Database: Add 8000 Series AMD APUâs
- Overlay Mode: Prevent extra guide events in overlay mode
- PowerTools: Prevent display of floats in UI
- Target Device: Update target devices to latest InputPlumber version.
Also Handheld Daemon had some releases for its new 3.0 release
From the hardware side there is the plan to produce a trial production batch Mid-July. We will keep you guys posted as soon as we have more information on that one.
KW24 - KW25
After Computex we continued our work on the NEO. Since we now got more newer prototypes we also started prepare support for AMD Ryzen 8840U SOC. We also checked how accessible the SD-card is. On the Neo it is placed next to one of the speakers on the bottom of the device.
One of the things we also did was to translate OpengamepadUI to Chinese.
First thing we tried to fix was to support TDP for the new 8840u unit
adjustor for hhd already covers that. For OpenGamepadUI it is a little more complex. powerstation needed to be updated to the latest libraries. Ryzen-SMU needed new CPU support, unless you want to use the kernel command iomem=relaxed
. Additionally we added the new APU informations to OpenGamepadUI.
We also upstreamed keybindings to systemd.
Sady we faced some I/O issues when resuming from standby on the 8840u unit. That issue was fixed via a BIOS update. We had great help from AMD to debug this one. We recommend this script if you want to test standby issues by your own.
A new hardware probe of the 8840u unit can be found here.
On OpenGamepadUI we were able to fix the following issues:
- Resolved bug with OGUI sometimes getting caught in an infinite loop and acting like it crashed or froze
- Resolved issues with ogui display & input state not matching
- Resolved bug with highlight focus for Steam not being present after exiting a game
- Resolved bug with touchscreen focus after exiting a game
- Created an example config for os-session-select to set intercept mode during switch to desktop
On Desktop side of things we are currently experimenting with Plasma 6.1 and wayland session.
KW23
Philip went to Computex on the 6th and 7th. He managed to meet with Jake from Linus Media Group.
They discussed on how to do a review on Short Circuit soon. His feedback was great so far. We also had brief 5 minutes with Steven from GamersNexus. We also talked with heise and the Youtuber Cyber Dopamine, liked what they saw so far. Some Video recording from our meetup.
We also managed to ship one unit to our American developer to improve controls and cooling management from software side even further.
On software side we pushed some fixes to InputPlumber: Set Target Devices: Add workaround when starting new target devices. (1edd1eb) & (5f3f7bf), IIO IMU: Allow setting sample rate and scale for IMU devices. (b24c0e8). For OpenGamepadUI the following changes were important to mention: Library: add option and menu to hide items in library (b026738), load installed games first (ead1272), OSK: shrink menus and scroll to focus item when OSK is opened (6fab3de), UI: update UI components aesthetic (90b44dd), ExpandableCard: allow keyboard input for card activation (8c9d1bd).
As soon as Philipâs unit gets released from the customs office, he will start benchmarking and comparing the devices on our Youtube channel.
KW22
On OS side we worked again on InputPlumber to get those emulated controllers working. OpengamepadUI gained the option to switch between profiles using the overlay menu.
This way we can switch between a generic gamepad, Xbox360, DualSense, DualSense-Edge. In a later version also the Steam Controller will be emulated.
I also found time to do another Benchmark on the Neo. Setting that one up took a little longer. Lutrix worked but the benchmark was only shown in a windowed screen. Had to jump thru some hoops to get it displayed fullscreen in the end.
Hardware-wise testing of the recent additional 17 units is still ongoing. Testing and Engineering team have to narrow out some last hardware issues before production can begin. All games they tested so far are now working fine on the OrangePi Neo.
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.
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.
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.
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
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.
We updated the cooling system once again and improved how buttons are working.
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.
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.
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.
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.
Plus we managed to get 120Hz working in Gamescope.
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.
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.
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.
KW7
All about RGB! RGB control is currently done via firmware. So you can control RGB like this:
-
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;
-
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;
-
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;
-
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;
-
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;
-
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;
-
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;
-
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.