electro-smith / programmer Goto Github PK
View Code? Open in Web Editor NEWWebUSB programmer for Daisy (and other DFU-compatible chips/boards).
Home Page: https://electro-smith.github.io/Programmer/
License: MIT License
WebUSB programmer for Daisy (and other DFU-compatible chips/boards).
Home Page: https://electro-smith.github.io/Programmer/
License: MIT License
There's a 404 on the examples.json file.
When running a local version of the app this doesn't happen. The path is syntactically the same as loading the js scripts, or image reference in index.html. Could be because it just got merged.
All of the other UI elements still work correctly, but this one just locks up.
Connecting to the device again fixes it. Hmm
I'm seeing "marked is not a function" here when trying to grab any of the README URLs and display the markdown.
It doesn't stop the page from functioning, but it prevents any of the READMEs from showing up. Not sure if there was a change to marked or something, but we should look into this ASAP.
The dropdown here should default to *.bin, to make filtering out unrelated files easier.
Textually describing the process to enter the bootloader may not be sufficient, especially with how small the text on the PCB is.
A Diagram marking which buttons are which (or even a gif of the process) would make it a lot easier to illustrate how to enter the mode.
Just plugged in a very brand new Daisy Patch's Seed and it only offered to patch Pod's SimpleLed app after circumventing #16.
Shouldn't it offer Daisy Patch as platform along with the relevant apps?
Will probably try uploading something locally built tomorrow, but haven't come around to set up the toolchain yet. Wanted the rack working first. (Yes, this is my third module, and the first capable of producing audio/cv).
Would be happy to get pointed at ready-made firmware images that i can drop in the programmer, too!
Norns will live next to the Daisy, btw.
looks weird, and is hard to read because of the white text.
Using the programmer on linux, I get Access Denied error. According to a stackoverflow answer for using WebUSB on Linux, permissions must be given so that chrome can access the specific daisy seed connected on a specific USB port. The subthread suggests that the workarounds do not reliably work... So here I'll walk through the steps and paste the output.
Step 1: Identify the device via lsusb
$ lsusb
Bus 002 Device 004: ID 046d:c05a Logitech, Inc. M90/M100 Optical Mouse
Bus 002 Device 003: ID 413c:2003 Dell Computer Corp. Keyboard
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 0483:df11 STMicroelectronics STM Device in DFU Mode
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Step 2: Create a new file in /etc/udev/rules.d/
sudo vim /etc/udev/rules.d/99-daisy.rules
# Daisy Seed in DFU Mode
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTR{idProduct}=="df11", MODE="0660", GROUP="plugdev"
Step 3: Reconnect...
SecurityError: Access denied.
The same error occurs with a boiled down version that attempts to simply connect. So this isn't exclusive to the electrosmith programmer; it's across the board for Linux users and WebUSB.
<!DOCTYPE html>
<html>
<head allow="usb"></head>
<body>
<input type="submit" onclick="connect()" value="connect"/>
<script>
var device;
function setup(device) {
alert(device.productName+" open");
return device.open()
.then(() => device.selectConfiguration(1))
.then(() => device.claimInterface(0))
}
function connect() {
if (device == null) {
//navigator.usb.requestDevice({ filters: [{ vendorId : 0483 }] })
navigator.usb.requestDevice({filters: []})
.then(selectedDevice => {
device = selectedDevice;
console.log(device);
return setup(device);
})
.catch(error => { console.log(error); })
}
}
navigator.usb.getDevices()
.then(devices => {
if (devices.length > 0) {
device = devices[0];
return setup(device);
}
})
.catch(error => { console.log(error); });
</script>
</body>
</html>
Javascript Console
USBDevice {
configurations: Array(1),
deviceClass: 0,
deviceProtocol: 0,
deviceSubclass: 0,
deviceVersionMajor: 2,
…
}
configuration: USBConfiguration {
configurationName: null,
configurationValue: 1,
interfaces: Array(1)
}
configurations: [USBConfiguration]
deviceClass: 0
deviceProtocol: 0
deviceSubclass: 0
deviceVersionMajor: 2
deviceVersionMinor: 0
deviceVersionSubminor: 0
manufacturerName: "STMicroelectronics"
opened: false
productId: 57105
productName: "DFU in FS Mode"
serialNumber: "200364500000"
usbVersionMajor: 2
usbVersionMinor: 0
usbVersionSubminor: 0
vendorId: 1155
__proto__: USBDevice
DOMException: Access denied.
Setting the URL of this github repo will show it in the sidebar. Also, the URL in the readme electro-smith.github.io/Programmer/dfu-util/index.html
should be changed to https://electro-smith.github.io/Programmer/
I did a quick mockup with Vuegg (a pretty neat gui generator, that I might try to import into our existing project). Otherwise we can use something like bootstrap.
Change name of Daisy programmer to (Daisy Web Programmer) everywhere it appears on programmer page. (USB Programmer, Usb Programmer, Daisy Programmer, etc. )
After using this a bit, its annoying to have to reselect the same USB device over and over.
For instances such as these, there should be a reconnect button or something that just uses the last selected device info (serial/vid I believe).
This would make it so that it always looks at the master branch of DaisyExamples so that new examples and fixes don't have to be manually imported to this repo.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.