Comments (8)
[EDITED]
NOTES:
- On OS X Mavericks and above, the FTDI driver is stored as
/Libraries/Extensions/FTDIUSBSerialDriver.kext
/Library/Extensions/FTDIUSBSerialDriver.kext- If this driver is not installed, Apple's own included driver,
/System/Libraries/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBFTDI.kext/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBFTDI.kext takes control- This driver will open the connection to our development boards, and power the boards, but it doesn't support DTR and RTS signal control, so it's totally unusable to us
- If this driver is not installed, Apple's own included driver,
- Once installed, the FTDI driver will only actively function if the system has been rebooted or the Apple driver kext has been manually unloaded and the FTDI driver has been loaded.
So, 1) FTDI driver must be installed, and 2) FTDI driver must be active (when our board is connected) in order to call it good! 1 represents installation (or lack thereof), and 2 represents activation (or lack thereof).
Steps for detection and response:
- Issue this command:
kextstat | grep FTDI
- if the response includes the string
com.FTDI.driver.FTDIUSBSerialDriver
then all is well. Skip the rest. - if the response is blank (no response), then no USB-based Parallax development board is connected to the system. Prompt user to connect their board at this time. NOTE: This response will be amended when PropLoader (which supports wireless downloads) is integrated into BlocklyPropClient.
- if the response includes the string
com.apple.driver.AppleUSBFTDI
then either the FTDI driver has not been installed, or the system has not been rebooted since the FTDI driver was installed (letting the Apple-supplied driver continue to take over). Check Step 2 to figure out which case it is.
1. Check the/Library/Extensions/
folder forFTDIUSBSerialDriver.kext
- If it exists, then the system hasn't been rebooted after driver installation. Prompt user to reboot their system for proper USB driver operation.
- If it doesn't exist, then the FTDI USB driver was not installed. Prompt the user to install the drivers a and reboot.
- if the response includes the string
from blocklypropclient.
The "prompts" mentioned above can be an obvious message in the BlocklyPropClient UI (rather than a dialog). Ideally, we'd have it communicate something to the editor also so that the editor can prompt the user in some way to call attention to it, at the moment they try to download, for example.
from blocklypropclient.
@PropGit Can you verify that the path to the installed FTDIUSBSerialDriver is under /Libraries and not under /Library ? In MacOS Sierra (10.12.x), I am seeing the driver under /Library.
from blocklypropclient.
@zfi - Oops, my mistake, it's /Library. I edited the top post to fix it.
from blocklypropclient.
Verified, this enhancement logs the existence (or lack of) the FTDI USB Driver and the existence (or lack of) an FTDI-based board connected to a USB port.
It does not seem to prompt the user in a visible way (in the Client application).
Is prompting intended to be in the Client application, or the Editor?
from blocklypropclient.
I have not addressed an UI enhancement to notify the user of the FTDI issue. The original issue was simply detecting the state of the driver. I'll add an issue to create the UI change.
from blocklypropclient.
@zfi - perfect, thanks. I think the UI change needs to be a separate issue too, to fit our necessary workflow.
from blocklypropclient.
Issue #47 will carry on the final part of this task.
from blocklypropclient.
Related Issues (20)
- Terminal stream needs base64 encoding HOT 1
- Terminal character echoing needs to be turned off HOT 1
- Improve port list response HOT 1
- Version Number Management HOT 3
- Move Developer Notes to the Wiki HOT 1
- Log is cleared when application is terminated HOT 2
- Determine difference in behavior for logging on Win vs Mac HOT 1
- When running on Linux, application tries to read files from the root directory HOT 8
- Document BlocklyPropClient Troubleshooting Tips HOT 5
- Prevent duplicates in port list HOT 2
- Enhance to allow Wi-Fi debugging
- Improve port string parsing to prevent "R"-style ports HOT 1
- Add Update Client Ability
- Validate COM port IDs before launching PropLoader HOT 2
- Sort wired ports to their alphanumeric order HOT 1
- FTDI Driver on macOS Sierra (exclusive or not at all)
- Apply better port list handling HOT 3
- Review/Test for possible name-adjustment bug
- Unable to load program onto S2 Robot HOT 4
- Add Base64 encoding for terminal communications HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blocklypropclient.