What are the additional configurations/ additions for integrating USB3503 to Android on IMX8QM? - imx8

I'm trying to integrate the USB3503 HSIC hub to Android in IMX8QM. I have already done the same on Linux. However, even after integrating similar lines of code, which were added in Linux for the hub bringup- we are not able to get proper response from the device.
The driver is loading and the driver lists when checked with i2cdetect, but i2cdump and other i2c commands return I/O errors.
Please help.
Thanks & regards

Related

Read/Write Packets for PTP/USB on Windows

I'm trying to create a PTP/USB driver for Windows. Here's what I've done so far:
I was able to successfully use WIA, but win32 scans the entire SD card and builds a tree of files before I can do anything (takes 5 minutes, so unusable)
Tried SetupAPI with CreatePipe(), got unsupported error code
Tried SetupAPI with WinUSB, got unsupported error code (later decided against using WinUSB for misc reasons)
Tried SetupAPI with ReadFile/WriteFile and DeviceIoControl, got more unsupported errors
My SetupAPI code to discover the camera is working perfectly. The GUID for what I'm connecting to is {6BDD1FC6-810F-11D0-BEC7-08002BE2092F}. My PTP driver is working perfectly on Linux with LibUSB bindings.
Not asking for code fixes, just want to know which path I should try again. Thanks for any advice.

NodeMCU version unknown

I'm new with NodeMCU firmware use. I have a Amica ESP-12E (v2?) dev kit connected to a DHT22 which I program using the Arduino IDE. All is setup and working fine.
My problem came when I wanted to update NodeMCU firmware. Since I don't really know what came pre installed from China, I downloaded ESPlorer to try to determine NodeMCU version. I get the following "error" when I reset the dev board:
Communication with MCU..Got answer! Communication with MCU established.
AutoDetect firmware...
Can't autodetect firmware, because proper answer not received (may be unknown firmware).
Please, reset module or continue.
{{a long string of weird characters that I can't copy and paste appear here}}
At this point I'm totally clueless about what version of firmware I have. Is there a way to obtain NodeMCU firmware version by software via Arduino IDE code, ESPlorer GUI or something similar?
On the other hand, is there a really easy way to compile/download latest NodeMCU firmware BIN file? Even one with all the modules active will be fine for me now, I'm just trying to understand and test things.
You seem to be confusing two very different platforms. I leave out some details as not to confuse you any further.
Arduino: you use Arduino programming in the Arduino IDE then build and install a binary to your device whenever the application changes. No NodeMCU firmware needed!
NodeMCU: you flash the NodeMCU firmware once (e.g. using esptool.py) and then upload Lua code (e.g. using ESPlorer) whenever the application changes. This is more lightweight than the Arduino platform.
On the other hand, is there a really easy way to compile/download
latest NodeMCU firmware BIN file?
Yes, have a look at the NodeMCU documentation at http://nodemcu.readthedocs.io/en/latest/en/build/. The easiest is to use the cloud builder at https://nodemcu-build.com/. I currently suggest to build from the dev branch because flashing is easier with it.
As pointed out you have several options for firmware and you'll need to make a choice as to which suits you going forward. If you are going to stick with the Nodemcu LUA firmware you can determine the version by typing:
print(node.info())
at the command line prompt.
There are alternatives to using ESPlorer e.g. Putty or Coolterm that will give you the raw output from the device with no interpretation. So if you have the correct serial port settings and the device plugged into the USB port it will show the banner when you reset giving an indication of the origin and version of the installed firmware.
In ESPlorer, there is an option under settings which if unchecked will stop looking checking for the version of the code.
For whatever reason, ESPlorer is not designed to read nodemcu version.
The error message throws you off, could lead you to think, there is an error.
At best, the above error can be ignored. It has no impact at all. In background, init.lua is up and running.

Problems reading serial data on Windows IOT rasberry pi3

I have an Adafruit Ultimate GPS on a USB serial interface and using the same UWP application can read data just fine on a x86 build on a desktop. When I try a ARM build on the PI3 (remote), everything appears to work, but the serial data read never returns. No timeout, nothing. On the desktop, it starts getting GPS data from the chip right away. I also tried the CustomSerial sample app and am getting the same result. I do have the manifest updated to show serial port access, so don't think that is the problem.
Any ideas would be greatly appreciated. Thanks.
Problem resolved, operator error. Prolific driver not supported, was trying to read data from on-board serial port. Move the GPS sensor to the on-board serial, all is working now. Apologies for the distraction.

Installing NetSerivce NDIS Filter Driver on Windows IoT Core

I know that there is a simple driver example to install a device driver on IoT Core. I cannot find any information about how to install a NetService type NDIS filter driver on IoT Core. I have trouble installing a NDIS Filter Driver on IoT Core, which is quite different from a general device driver.
My NDIS filter driver is basically from VS2015 NDIS filter driver sample. I already successfully put it on a target Win 10 Enterprise PC and can see its trace messages via VS2015 Kernel debugger window from Development computer.
I was also trying to put it on Windows IoT Core, and my hardware is Minnowboard Max. My steps are:
Follow
https://ms-iot.github.io/content/en-US/win10/samples/DriverLab4.htm
to just set up the provisioning on the target IoT Core from VS2015
on dev computer.
Follow
https://channel9.msdn.com/Blogs/WinHEC/Creating-Universal-Drivers-with-WDK-10
to prepare for the mobile package (.cab file). Need to enter the
required info in Package.pkg.xml file. Build the x86 debug version.
Follow the same link as bullet 2 to deploy the .cab (online .cab package installation/update) on IoT
Core from VS2015.
However, after connected via Kernel Debugger and set Kd_DEFAULT_MASK
= 0xF, cannot see any filter driver’s trace messages.
“devcon listclass NetService” returns empty.
Can anyone give me any instructions or hint? (This issue
is only for IoT Core. I successfully made it work on Windows 10 Enterprise already.)
Unfortunately I don't think that NDIS LWFs can be installed onto Windows IoT Core currently. What's the high-level problem you're trying to solve? Maybe there's another way to solve this problem that doesn't involve LWFs.

How to view bootchart of an embedded device such as smartphone?

I have a laptop installed windows 7 x64 and a virtual machine with Ubuntu 12.04. I installed Bootchart on my virtual machine. I can view bootchart diagram of my virtual machine after log it on.
But I wonder... Is there any way to view bootchart diagram of an embedded device such as my android smartphone if i connect it to my laptop?
Can you help me to solve this? Thank you very much.
If you are a developer with the Android source code, you can use the following method and the bottom link to enable the bootchart on you smartphone.
brief instruction is like:
install the bootchart tool on your host machine
build 'init' with bootchart support
install 'init' into your system image
trigger bootchart functionality on system boot
retrieve the collected data from the system
generate the graphic from the data
view the resulting graphic
interpret the results
and more details please refer to :
http://elinux.org/Using_Bootchart_on_Android
dmesg command will be the one of the most helpful tool in providing log messages right from beginning of booting as far as any operating system based on linux. It prints the message buffer of kernel and it should also enable you to decode the boot sequence. You can also redirect the kernel messages using the 'console' command via the interface(UART / USB) that is available on the device.
Another interesting tool that could work in tandem with dmesg is netconsole if the device does not provision for other interface based logging or issues in disk logging. It sends all kernel log messages without any dependency on userspace, to another computer over the network (UDP) . However note that netconsole initializes only after NIC card initialization and hence capture of early kernel logs before this point will not be there but captures the rest of the boot process.

Resources