VoCore2: OpenWrt 23.05 Sound Part

Finally sound part works. Thanks to contributor patches.

The problem is caused by DMA did not correctly stopped before I2S stop, then DMA write to invalid memory address then casued watch dog reset the hole system, no oops.

Patches has upload to: https://github.com/Vonger/vocore2/tree/master/openwrt.2305

OpenWrt source code patch openwrt.patch folder, linux kernel patch at kernel.sound folder, need to copy to target/linux/ramips/patches-5.15

In menuconfig, need to select kmod-mt7628-es8388, kmod-i2c-mt7628 etc… For simple just copy menu.config to .config in your openwrt folder, will compile everything.

VoCore2: OpenWrt 23.05 Part2

Continuing with my last blog, the sound part. Last time I found there was a problem, some kernel code was broken because I could patch and compile it but once I ran aplay the kernel would crash.

I checked openwrt 18 and openwrt 19, the patch worked well for both of them, but from openwrt 20, the latest version, none of them worked.

I compared their source code about the sound card main reference clock, its output 12M was normal; I2C, I2S, which were used to control and send data, this part was normal too; sound card part driver es8328.c and es8328-i2c.c both seemed fine to me. Only one doubt was the DMA driver, we sent data to memory and it carried data to I2S then the sound card played sound. One more thing was DMA driver was moved to staging in linux kernel, that meant somebody found the problem too. If DMA has any bug like writing data to a place that surprises the kernel, the unhappy kernel crashes with no apparent reason and reboots itself.

So its time to hack the linux kernel again…Good luck to me.

I think the DMA driver’s source code has not changed, but the linux kernel somehow has changed. That brought a new problem. The code is in drivers/staging/ralink-gdma/ralink-gdma.c, this linux kernel is 5.15.137.

6.8inch Screen CH32V003+WS2812 DEMO

In order to simplify the development of dashboards based on the VoCore MPRO screen, CH32V003, and WS2812, we have created a simple demo that is now available for order at vocore.io/store.

The shell was designed using FreeCAD. We are not experts in design, so please feel free to modify it. 🙂

Download here https://github.com/vonger/6IN8SHELL

Reference link: https://github.com/Vonger/V7B_WS2812B

Reference link: https://vonger.cn/?p=15457

VoCore2: OpenWrt 23.05

It is pretty straight to use OpenWrt 23.05. It works very smoothly. If you do not need to customize such as default IP, WiFi default enable, almost do not need to patch anything.

  • WiFi — works normal, 72Mbps for one antenna.
  • Ethernet — works normal, 100Mbps.
  • USB 2.0 — works normal.
  • SD card — works normal, need to patch dts.
  • Sound — need to check.

note: patch sdcard, add the following code to end of mt7628an_vocore2.dts

&sdhci {
        mediatek,cd-poll;
        status = "okay";
};

PS: download feeds is very slow for openwrt, maybe it is because its source code do not add –depth 1. Patch ./scripts/feeds:157, add depth 1 to init_commit, after that, feed update speed increase 10 times. Or directly download from openwrt feeds, then move to openwrt/feeds folder then call ./script/feeds install -a

VoCore2: PoE upgrade

Current VoCore2 PoE version is based on MAX5987AETE, which has become too expensive and can no longer be afforded. Since last year, we have been searching for a new solution, but finding one with low power consumption and smaller size has proven to be difficult. After considering various options, the best balance solution for VoCore2 Ultimate + PoE was ultimately chosen.

The new solution is superior to the MAX5987AETE solution in most aspects, as it significantly reduces heat and allows for greater power delivery to devices. Additionally, this new solution simplifies the bill of materials (BOM) while maintaining a cost that is only one-third of the 5987 solution’s price.

Due to the reduced costs associated with this new solution, we are pleased to announce that the VoCore2 Ultimate + PoE’s price has been lowered from $44.98 to just $29.98, new version will start to ship after Chinese New Year.

The new version PoE also open source, have fun. 🙂

VoCore2: Upgrade

Happy new year 🙂

VoCore2 now are all upgrade to 32MB NOR flash version and price keeping same as 16MB version. So with bigger flash we can do even more.

Have fun in 2024!

Screen: MPRO firmware hotfix 3

Recently some MPRO samples had reported random disconnect sometimes or can not detect at all.

After some investigation and testing, it is confirmed that it is not a software issue, but two possible problems, which are highly related to USB cables and PC USB voltage leak. The first problem is normally caused by the USB cable not matching the 90-ohm impedance standard, so the USB data quality is very poor, resulting in instability for long cables. The second problem is that some PC power supplies are not well shielded, and for long USB cables used for simracing, they act like antennas, receiving much more noise than the short cables inside the PC, causing the screen to not work normally or even worse, breaking the screen.

In the market, it is difficult to find high-quality USB cables. Therefore, for future MPRO samples, we will consider providing a suitable USB cable with better performance and reliability.

One more thing, MPro version currently do not support USB-TYPEC <=> USB-TYPEC cables, only support USB-TYPEA <=> USB-TYPEC cable or USB-TYPEA <=> microUSB + USB-TYPEC adaptor, later we will consider support USB-TYPEC <=> USB-TYPEC.

Screen: MPRO firmware hotfix 2

The new firmware fixed touch screen sometimes blocks display normal operate, also some small issues, add version information to firmware.

Download link is same: https://vonger.cn/misc/temp/mpro_upgrade.zip

Screen: Drive LEDs with MCU Part1

This is the working demo board, CH32V003 connect to V7B or MPRO driver board I2C interface. This way can save one USBHUB and ATMEGA, only need a very low cost CH32V003(0.1USD)

Source code upload to github.com/vonger/V7B_WS2812B

MPRO and V7B I2C CLK/DAT are in different position, so need a switcher to compatible them.

We also make some demo boards, if you need them contact support(a)vocore.io

Screen: MPRO firmware hotfix 1

First bug find, it is the MPRO driver board touch screen is not compatible with Simhub, sometimes it will not work after a while.

After a few days debug, this problem has fixed. Please download at https://vonger.cn/misc/temp/mpro_upgrade.zip, this is a windows tool for easy use.

To upgrade the firmware, need some steps:

  1. download the upgrade tool and uncompress to folder, like D:\mpro
  2. open Windows command line tool(search cmd)
  3. in cmd, go to D:\mpro, normally you can do this by two DOS command: d: (enter)then cd mpro_upgrade (enter)
  4. call upgrade application do the upgrade: upgrade firmware.bin(enter)

Thanks to all the users help us do the public test, if you find any bug feel free email to support(a)vocore.io