Rockbox.org home
Downloads
Release release
Dev builds dev builds
Extras extras
themes themes
Documentation
Manual manual
Wiki wiki
Device Status device status
Support
Forums forums
Mailing lists mailing lists
IRC IRC
Development
Bugs bugs
Patches patches
Dev Guide dev guide
translations translations
Search



Donate

Rockbox Technical Forums


Login with username, password and session length
Home Help Search Staff List Login Register
News:

Welcome to the Rockbox Technical Forums!

+  Rockbox Technical Forums
|-+  Support and General Use
| |-+  Hardware
| | |-+  HiBy R1
« previous next »
  • Print
Pages: [1] 2

Author Topic: HiBy R1  (Read 2341 times)

Online 7o9

  • Member
  • *
  • Posts: 170
HiBy R1
« on: November 26, 2024, 11:35:47 AM »
The new HiBy R1 might be a candidate for running Rockbox.

It is running an Ingenic X1600 SoC using a Cirrus Logic CS43131 DAC with a 3" 800x480 on a Linux-4.4.94+ kernel.

Product information: https://store.hiby.com/products/hiby-r1

Like other Ingenic devices, it supports the USB boot mode. When holding down the 'next' button and plugging the USB cable, the device identifies as 'Ingenic USB BOOT DEVICE' with USB ID A108:EAEF.

A first firmware update is available here: https://store.hiby.com/apps/help-center

The firmware file is a renamed .iso file which can be extracted. It contains the Linux kernel (xImage) and a root filesystem in SquashFS format.

Drivers included (in directory 'module_driver') include axp2101, cw2015, lcd_lg35583, tcs1421, cst8xx_touch, codec_cs43131 and others. Most drivers include a script to load them which provides some helpful parameters (like gpio's).

For example:

lcd_lg35583.sh: insmod lcd_lg35583.ko gpio_lcd_power_en=-1 gpio_lcd_rst=PA31 gpio_spi_cs=PA30 gpio_spi_sck=PA00 gpio_spi_mosi=PA01 spi_bus_num=5 vcc_regulator_name=bldo1 vccio_regulator_name=bldo2

codec_cs43131.sh: insmod codec_cs43131.ko cs43131_i2c_bus_num=3 cs43131_pwr_gpio=PB02 cs43131_pwr_en_level=1 \
 cs43131_rst_gpio=PB21 cs43131_rst_en_level=1 \
 cs43131_mute_gpio=-1 cs43131_mute_en_level=-1 \
 cs43131_po_sel_gpio=-1 cs43131_po_sel_en_level=-1

The attached picture is of the HiBy R1 next to a Sansa Clip+ for size reference.


* hiby_r1s.jpg (129.42 kB, 640x480 - viewed 176 times.)
« Last Edit: November 26, 2024, 01:49:46 PM by 7o9 »
Logged

Offline dconrad

  • Developer
  • Member
  • *
  • Posts: 281
Re: HiBy R1
« Reply #1 on: November 27, 2024, 02:07:47 PM »
Certainly an interesting device. The more similar the X1600 is to the X1000 the easier it would be, if we wanted to do a native port. Probably still a fair amount of work to get it on the X1600 regardless.
Logged

Offline emilyinspace

  • Member
  • *
  • Posts: 5
Re: HiBy R1
« Reply #2 on: November 27, 2024, 04:38:48 PM »
I am guessing that the biggest problem would be the touch driver, no? since most rockbox devices don't have a touch screen :'(
Logged

Online 7o9

  • Member
  • *
  • Posts: 170
Re: HiBy R1
« Reply #3 on: November 29, 2024, 05:32:21 AM »
I have been playing with the firmware update file, trying to see if I could modify it a bit.

Unpacking the firmware and repacking it without making changes is not a problem. The update ISO file is not identical (though the contents are) but still valid and flashing the firmware worked fine.

I tried making changes to the rootfs.squashfs file (extracting it using unsquashfs, rebuilding it using mksquashfs) seemed to work fine. Creating an r1.upt ISO file from it worked like before and the player successfully flashed the modified file.

Unfortunately, the device no longer started after that. The changes to the rootfs.squashfs file or the way I rebuild it using mksquashfs must have broken it.

However, I learned that if you put a working (i.e. the official one from HiBy :) ) firmware file on the sd card and hold volume+ while powering it on, it will flash it back into life.

My HiBy R1 lives again and I learned that it is hard to really brick.

In between attempts to revive it, the USB boot mode of course still worked but I have no way to run anything using that yet.
Logged

Offline folder

  • Member
  • *
  • Posts: 2
Re: HiBy R1
« Reply #4 on: April 12, 2025, 11:32:35 PM »
This was posted in a thread about another device, but I will repost it here for good measure. Hiby published their source kernel for their x1600 devices:

https://onedrive.live.com/?redeem=aHR0cHM6Ly8xZHJ2Lm1zL3UvYy81YjUzMGVlMjBiZGI2Mjc5L0Viei1qYXpvSkZoTXV5Y2NRYVZxMHBZQnFrd3RVdk9GajNWbWJHMmt6eUtYZXc%5FZT1mQ0FwaUw

Code: [Select]
cid=5B530EE20BDB6279&id=5B530EE20BDB6279%21sac8dfebc24e84c58bb271c41a56ad296&parId=5B530EE20BDB6279%21s645c9f10ef4f4113ba71074560ec519c&o=OneUp
context: https://www.reddit.com/r/Hiby/comments/1i5q7ac/r3_ii_hiby_os_source_code/
« Last Edit: May 03, 2025, 09:13:04 AM by Bilgus »
Logged

Online 7o9

  • Member
  • *
  • Posts: 170
Re: HiBy R1
« Reply #5 on: April 13, 2025, 05:11:24 AM »
Thanks, but it is not too helpful.

It is the generic kernel from Ingenic with nothing specific to the HiBy R1 in it.

To really comply with the GPL they should have provided what they actually used for the device, not some generic starting point.
Logged

Online 7o9

  • Member
  • *
  • Posts: 170
Re: HiBy R1
« Reply #6 on: April 23, 2025, 03:47:38 PM »
I have been experimenting more, with minor success.

I managed to get the tiniest bit of Rockbox to run on the R1.

Excuse the blurry image, with some effort it is readable.

* cannot_boot_rockbox.jpg (39.66 kB, 400x533 - viewed 68 times.)
Logged

Online 7o9

  • Member
  • *
  • Posts: 170
Re: HiBy R1
« Reply #7 on: May 03, 2025, 08:30:44 AM »
My HiBy R1 can run non-HiBy software, at least a little bit.

Rockbox starts but does not respond to buttons. Audio has been completely disabled to get it to start without instantly crashing.

* frozen_rockbox.jpg (84.79 kB, 400x533 - viewed 66 times.)
Logged

Offline Bilgus

  • Developer
  • Member
  • *
  • Posts: 1194
Re: HiBy R1
« Reply #8 on: May 03, 2025, 09:13:51 AM »
Nice!, Looks like you are well on your way now you just need a keymap
Logged

Online 7o9

  • Member
  • *
  • Posts: 170
Re: HiBy R1
« Reply #9 on: May 03, 2025, 11:18:32 AM »
I have some buttons going.

All buttons respond but I cannot figure out how to use volume up/down as up/down in the menu. I have set HAVE_VOLUME_IN_LIST and copied the keymap for button_context_list from /apps/keymaps/keymap-agptekrocker.c.

I can navigate the Rockbox menus reasonably well with next/ok/cancel.

The colors are not intentional. Selecting 'Font' in the 'Theme' settings results in an immediate segmentation fault, possibly in the scroll engine.

* rainbox_rockbox.jpg (95.57 kB, 400x630 - viewed 58 times.)
« Last Edit: May 03, 2025, 11:31:53 AM by 7o9 »
Logged

Offline bahus

  • Member
  • *
  • Posts: 213
Re: HiBy R1
« Reply #10 on: May 03, 2025, 11:33:41 AM »
Quote from: 7o9 on May 03, 2025, 11:18:32 AM
All buttons respond but I cannot figure out how to use volume up/down as up/down in the menu. I have set HAVE_VOLUME_IN_LIST and copied the keymap for button_context_list from /apps/keymaps/keymap-agptekrocker.c.
HAVE_VOLUME_IN_LIST is used to allow volume change in list - it seems it's not what you want (so remove this define). To make it act as up/down you should use mapping like:
Code: [Select]
static const struct button_mapping button_context_list[]  = {
/*    ACTION_LISTTREE_PGUP, optional
 *    ACTION_LISTTREE_PGDOWN, optional
 */

#ifdef HAVE_VOLUME_IN_LIST
    { ACTION_LIST_VOLUP,   BUTTON_VOLUP,                 BUTTON_NONE },
    { ACTION_LIST_VOLUP,   BUTTON_VOLUP|BUTTON_REPEAT,   BUTTON_NONE },
    { ACTION_LIST_VOLDOWN, BUTTON_VOLDOWN,               BUTTON_NONE },
    { ACTION_LIST_VOLDOWN, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE },
#else
    { ACTION_STD_PREV,                  BUTTON_VOLUP,                         BUTTON_NONE },
    { ACTION_STD_PREVREPEAT,            BUTTON_VOLUP|BUTTON_REPEAT,           BUTTON_NONE },
    { ACTION_STD_NEXT,                  BUTTON_VOLDOWN,                       BUTTON_NONE },
    { ACTION_STD_NEXTREPEAT,            BUTTON_VOLDOWN|BUTTON_REPEAT,         BUTTON_NONE },
#endif
    LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_list */

Logged

Online 7o9

  • Member
  • *
  • Posts: 170
Re: HiBy R1
« Reply #11 on: May 03, 2025, 12:18:38 PM »
Ah, exactly the opposite of what I was thinking. Thanks for the tip!
Logged

Online 7o9

  • Member
  • *
  • Posts: 170
Re: HiBy R1
« Reply #12 on: May 27, 2025, 03:40:22 PM »
It has been fun and I learned a lot about Rockbox hosted ports, but I am completely stuck with no ideas left.

What I managed:

- Rebuild the firmware file to inject a Rockbox 'bootloader' and fix the hiby_player.sh to launch it (and ADB).
- Build a functional 'bootloader' with readable text in the proper screen resolution but the icon images are garbled.
- Build a version of Rockbox without sound and touchscreen support

The R1 runs a newer version of Linux than the other (working) hosted targets and things are a little different. In particular ALSA is different and when having a look around with ADB, amixer returns no devices and only the error 'Invalid CTL default'.

The root filesystem is compressed with squashfs  which is different from older HiBy hosted targets too.

There is not much value in trying to clean up and provide a patch that can be applied to Rockbox to add the HiBy R1 as a buildable target in this state.

I will attach my scripts to unpack/rebuild the firmware file in case anyone wants to play around (rename to .sh).
* hiby_player.txt (0.45 kB - downloaded 14 times.)
* extract.txt (1.32 kB - downloaded 15 times.)
* rebuild.txt (2.08 kB - downloaded 11 times.)
Logged

Offline Milardo

  • Member
  • *
  • Posts: 99
Re: HiBy R1
« Reply #13 on: June 01, 2025, 07:43:20 PM »
Quote from: 7o9 on November 26, 2024, 11:35:47 AM
The new HiBy R1 might be a candidate for running Rockbox.

It is running an Ingenic X1600 SoC using a Cirrus Logic CS43131 DAC with a 3" 800x480 on a Linux-4.4.94+ kernel.

Product information: https://store.hiby.com/products/hiby-r1

Like other Ingenic devices, it supports the USB boot mode. When holding down the 'next' button and plugging the USB cable, the device identifies as 'Ingenic USB BOOT DEVICE' with USB ID A108:EAEF.

A first firmware update is available here: https://store.hiby.com/apps/help-center

The firmware file is a renamed .iso file which can be extracted. It contains the Linux kernel (xImage) and a root filesystem in SquashFS format.

Drivers included (in directory 'module_driver') include axp2101, cw2015, lcd_lg35583, tcs1421, cst8xx_touch, codec_cs43131 and others. Most drivers include a script to load them which provides some helpful parameters (like gpio's).

For example:

lcd_lg35583.sh: insmod lcd_lg35583.ko gpio_lcd_power_en=-1 gpio_lcd_rst=PA31 gpio_spi_cs=PA30 gpio_spi_sck=PA00 gpio_spi_mosi=PA01 spi_bus_num=5 vcc_regulator_name=bldo1 vccio_regulator_name=bldo2

codec_cs43131.sh: insmod codec_cs43131.ko cs43131_i2c_bus_num=3 cs43131_pwr_gpio=PB02 cs43131_pwr_en_level=1 \
 cs43131_rst_gpio=PB21 cs43131_rst_en_level=1 \
 cs43131_mute_gpio=-1 cs43131_mute_en_level=-1 \
 cs43131_po_sel_gpio=-1 cs43131_po_sel_en_level=-1

The attached picture is of the HiBy R1 next to a Sansa Clip+ for size reference.

Hi, how do you extract any folder/files from the .upt file?

I got a bunch of file that are like this: rootfs.squashfs.0000.f08ba94d72d4ec0412a054058a08cdcb

Can I get the exact cmdline thanks in advance.
Logged

Offline vitt13

  • Member
  • *
  • Posts: 95
Re: HiBy R1
« Reply #14 on: June 02, 2025, 03:32:59 AM »
Quote from: Milardo on June 01, 2025, 07:43:20 PM
I got a bunch of file that are like this: rootfs.squashfs.0000.f08ba94d72d4ec0412a054058a08cdcb

Can I get the exact cmdline thanks in advance.
Rename bunch of file to omit hash at the end of filename
like rootfs.squashfs.0000.f08ba94d72d4ec0412a054058a08cdcb to rootfs.squashfs.0000 and so on.
Then do command
cat rootfs.squashfs.* > rootfs_full.squashfs
Logged

  • Print
Pages: [1] 2
« previous next »
+  Rockbox Technical Forums
|-+  Support and General Use
| |-+  Hardware
| | |-+  HiBy R1
 

  • SMF 2.0.19 | SMF © 2021, Simple Machines
  • Rockbox Privacy Policy
  • XHTML
  • RSS
  • WAP2

Page created in 0.197 seconds with 16 queries.