Monthly Archives: March 2021

Screen: Unknown USB Device

Recently some people report to us one problem. After they power on computer, VoCore Screen can not be found anymore, it become an Unknown Device. Currently the bad ones are on their way shipping back to us, but for now, I think I can guess what is the problem already.

It is a very weird issue, because our screen is already in some projects and pretty stable for two years, should it be the chip become bad for this batch?

Interesting thing is our embed users never report such problem but only PC users who using the screen as an extend screen run SimHub has such problem.

So, it can not be the chip problem…If there are some problem, it must be ESD!

The critical problem should be the USB data line do not have TVS diode protected. And USB data line is weak to strong noise, strong EMI will broken it from inside. But where is the noise from?

After a lot of check with the client, the truth comes up. Normally Simhub users are using a very powerful PC who has a big power supply, some times the user will open the PC metal enclosure for better cooler, then the room become a hell of the screen driver board… because it do not have any protect. :'(

I have to say it is my design flaw, this screen is designed for VoCore2, it is not designed to use in such situation. Normally for embed usage, the USB cable is very short and well protected by ground, it is not necessary to use TVS diode to protect the USB. But PC…ahhhh, PC is another story.

OK, let’s talk something hardcore…

Solution for current version

PS: I know it is stupid…but in order to increase the board life, it is necessary

  • solder two TVS diodes to the USB cable D+/D-.
add two USB TVS diodes to red box
  • connect the screen after you power on your desktop PC.
  • cover the EMI source with metal case, to reduce the power on/off ; noise. (noise mainly from power on)
  • a well protected/short USB cable also work.

Note: TVS diode capacitance should be < 3pF, voltage 3.3V or 5V.

Any of the three way will work.

New screen shipped from Mar.25 will default have the protect diode solder on bottom side.

Update: we finally get some broken samples…but none of them are broken by ESD, all broken by force install caused PCB bend, chip is not connected well to PCB.

Update: v7a/v10a driver board is designed for embed device, not test on PC. From Oct.1, 2021, we have v7b/v10b version, special optimize for PC, fixed such problem.

Screen: Compile Driver

Source code of fbusb link: https://github.com/Vonger/vocore2/tree/master/utils/fbusb

Directly Compile in Linux(raspberry pi)

This is tested on raspberrypi, it should be also working on another Linux system. Please go to fbusb/src folder then run this command.

make -C /usr/src/linux-headers-$(uname -r ) M=$PWD modules

After this command, you will get fbusb.ko

Cross-Compile for OpenWrt in MacOS

Cross compile is similar. For example, I want to compile the driver for the VoCore on my Macbook, I will need to go to fbusb driver folder first, then run this command:

make -C /Volumes/OpenWrt/build_dir/target-mipsel_24kc_musl/linux-ramips_mt76x8/linux-4.14.195 M=$(PWD) CROSS_COMPILE=mipsel-openwrt-linux- ARCH=mips

This path /Volumes/OpenWrt/build_dir/target-mipsel_24kc_musl/linux-ramips_mt76x8/linux-4.14.195 is my Linux header path, You need to change it to yours.