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!
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!
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.
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
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.
Note: V2SCRT is V7B driver board or MPRO driver board test points.
We also make some demo boards, if you need them contact support(a)vocore.io
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:
Thanks to all the users help us do the public test, if you find any bug feel free email to support(a)vocore.io
After one and half years develop, finally the big upgrade for screen driver comes. This new driver board named MPRO, it has many notable new features.
PS: This upgrade mainly focuses on supporting more different types of screens, such as bigger screens, special shape screens, and high resolution screens. Without USB TypeC, the rest of the features are almost the same as the current V7B version. For example, for dashboard usage, nobody can find out the difference between 30FPS and 60FPS without a special exam device.
MPRO 5inch samples are open to order for public test, please email us sales(at)vocore.io for MPRO, its mass production version is same price as current 5inch version.
Explain and some notes about the features:
For Windows user, a good kermit terminal is not easy to find, we suggest to use TeraTerm.
TeraTerm download link: https://github.com/TeraTermProject/osdn-download/releases
Reference to vocore.io/v2.html or vocore.io/v2u.html, we use TTL to upgrade firmware if the uboot is still alive.
Hardware part, need to connect USB2TTL device RX and TX to VoCore2 TXD2 and RXD2, then we you power on VoCore2, you will able to read something from serial port. Serial port parameter for VoCore2 UART2 is 115200, 8n1.
First, open TeraTerm, select COM5(or COM3, it is kind of random depends on your Windows system)
Second, setup serial port at Setup => Serial Setup
Third, at bootup, select 0 for serial port upgrade firmware.
Then, choose the firmware(it is sysupgrade firmware from openwrt)
If everything works normal, check the boot up Linux Log, you will see it has upgrade to the new firmware. 🙂
More example code to use I2C on VoCore Screen driver board. These i2c function should be easier to understand and use.
int v2s_i2c_read_reg16(uint8_t addr, uint16_t reg, uint8_t *d, uint8_t size)
{
uint8_t buf[64] = {0};
int r;
if (size > 58)
return -1; // required data is too much.
buf[0] = addr; // i2c device address
buf[1] = sizeof(reg); // write 2 bytes for register.
buf[2] = size; // read data size.
buf[3] = reg >> 8; // i2c device register high byte.
buf[4] = reg & 0xff; // i2c device register low byte.
// send data to device i2c buffer.
r = libusb_control_transfer(h, 0x40, 0xb5, 0, 0, buf, 5, 100);
if (r < 0)
return r;
// trigger write to device, must send same device address.
r = libusb_control_transfer(h, 0xc0, 0xb6, 0, 0, buf, 1, 100);
if (r < 0)
return r;
// trigger read from device, first byte need to be the address.
r = libusb_control_transfer(h, 0xc0, 0xb7, 0, 0, buf, size + 1, 100);
if (r < 0)
return r;
memcpy(d, buf + 1, size);
return size;
}
int v2s_i2c_write_reg16(uint8_t addr, uint8_t reg, uint8_t *d, uint8_t size)
{
uint8_t buf[64] = {0};
int r;
if (size > 58)
return -1; // required data is too much.
buf[0] = addr;
buf[1] = sizeof(reg) + size; // write 2 bytes for register and rest for data.
buf[2] = 0; // read data size.
buf[3] = reg >> 8; // i2c device register high byte.
buf[4] = reg & 0xff; // i2c device register low byte.
memcpy(buf + 5, d, size);
// send data to device i2c buffer.
r = libusb_control_transfer(h, 0x40, 0xb5, 0, 0, buf, 5 + size, 100);
if (r < 0)
return r;
// trigger write to device, first byte need to be the address.
r = libusb_control_transfer(h, 0xc0, 0xb6, 0, 0, buf, 1, 100);
if (r < 0)
return r;
return size;
}
VoCore Screen normally do not need to modify the firmware and we are not recommend to do that either, because upgrade firmware is pretty risk that possible lock the driver board cause it totally bricked and will not bring any benifit — no speed increase or function change. But sometimes, the driver board have to write firmware again, like in Windows it shows “Unknown device” and VID=04B4&PID=8613. Once this happens, we have to reload the firmware and try to fix it.
For Linux, it is easy to upgrade, download our eeprom upgrade application here: https://vocore.io/misc/eeprom.linux.zip, and run “sudo ./eeprom.u64”, select the correct firmware type which must match the screen type printed on screen back side. It depends on libusb, so need to install libusb first.
For Windows, that is not easy, because Windows do not have common USB driver, we need to install many driver for different VID/PID devices. I think we can use Cypress USB FX2LP tools which from the chip provider to do the work. I will check and try to find some easy way to do it for windows users. Currently you can try to use this one: https://vocore.io/misc/eeprom.win32.zip. Upgrade firmware for a normal VoCore screen will only bring risk to brick it but no benifit, so recommend never use it if not necessary.
When you use eeprom.exe, you can choose the correct firmware from the list. But it will require you install at least two libusb drivers by using zadig, one for 04b4:8613; one for 1004:c872; once installed them, eeprom.exe can work normal. screen_test.exe only need 1004:c872.
For easy develop, the VoCore2 3d module and SMT footprint is upgraded to support KiCAD7, have fun 🙂
Consider SMT footprint has better yield rate for mass production, recommend to use this footprint.
Download STEP file at: http://vonger.cn/misc/vocore2/vocore2.3d.stp.zip or https://vocore.io/v2.html
Download Symbol at: http://vonger.cn/misc/vocore2/vocore2.smt.zip or https://vocore.io/v2.html
PS: also we have tape package. Contact us if you need this special package.