Will look into it,
Working with a symlink didn’t work well. I used id’s to do it.
made some small changes in the layout and removed some steps.
Curious how it will go on Tuesday.
@supercrab
I’ve created a first attempt on a install script, which works occasionally on the HP and Dell.
So I advice to do it manually.
wget wget https://github.com/wheaten/mpd_oled_dev/raw/main/scripts/install.sh
bash install.sh
Is there a chance such layout to be backported to arm version?
The udev rule is working fine for me with libu8g2arm. Here is a demo program running using /dev/i2c-99
Currently using the line below.
Works without any manual intervention.
Not sure how to fully automate your suggestion. As I already need to run the below command to get the correct /dev/i2c-*., then strip udevadm info /dev/i2c-*
, create a rule, reload the rule.
The only advantage is that your solution is a one-timer (during install), as long as the USB doesn’t get stuck in a different port.
unless I miss something?
It’s possible to port it to arm, but that is up to @adrii and @supercrab.
But the code change is minimal, and all architecture uses the same code.
Only the dev branch with the new libu8g2, can also run on x86.
At this point, I am only looking into the x86 development (read dev branch).
The udev rule instructions I posted work as a simple manual solution to the problem, by insisting that the same USB port is used but not caring about the adapter type (as long as it only provides one I2C bus).
To automate them, a script could, for example, ask the user to plug in the adapter, and check for state before and after. But, if it turns out people want to plug the adapter into any port, then a udev rule could account for that too, but obviously might struggle to deal with two adapters of the same model.
A CP2112 based board might be another interesting option for I2C, as it appears to have a driver included with linux
It looks like there might be an official linux driver for @supercrab MCP2221 board as well (I don’t know if it is enabled in Volumio)
Thanks! I’ve just ordered one from AliExpress probably take ages to arrive though Not to worry, there’s no rush for this board.
According to hackaday, the CH341A drivers should also be part of the kernel.
According to the first posts of @supercrab the performance of the CP2221 was pretty bad, or is this another chip?
I suspect performance was bad because of the libraries used in between the low-level Windows drivers and C#. I couldn’t see any reason why the chips can’t be as fast as what we see on the Raspberry pi I2C. Linux seems to have much programmer support for these devices.
Then you can’t test with the one you already have, as it seems the same chip
I don’t think the official kernel includes a CH341 driver for I2C
And from: linux/ch341.c at master · torvalds/linux · GitHub
* ch341.c implements a serial port driver for the Winchiphead CH341.
*
* The CH341 device can be used to implement an RS232 asynchronous
* serial port, an IEEE-1284 parallel printer port or a memory-like
* interface. In all cases the CH341 supports an I2C interface as well.
* This driver only supports the asynchronous serial interface.
ordered one too. Let’s how long it takes, before it’s being delivered.
oeps, missed that part.
I don’t know if Volumio currently includes the driver for this board, but it looks great for making external devices (the turnandrun program I wrote uses an ADC board attached by I2C GitHub - antiprism/turnandrun: Turn a dial and run commands).
I have found delivery times from China have improved a lot in the last few months. I recieved my last order a couple of weeks ago. It was meant to take 4 - 6 weeks, but arrived in 3. Just like the old days!
I want one of these little purple boards too, I just need to come up with an amazing application that absolutely depends on it.
mpd_oled - x86
Good thinking, it just needs a case that the CH341 board is too big to fit into.
There are some shipping containers left after the WC 2022. Those a big enough.
Let’s hope that the kernel supports the CP2112, so we don’t have to break OTA update of volumio.