keyboardio / kaleidoscope-bundle-keyboardio Goto Github PK
View Code? Open in Web Editor NEWA Kaleidoscope distribution for the Keyboardio Model 01 and other keyboards.
License: Other
A Kaleidoscope distribution for the Keyboardio Model 01 and other keyboards.
License: Other
The files HID.h
and HID.cpp
are redundantly defined in library HID
and KeyboardioHID
.
Diffing them shoes that both are almost identical. Is there a particular reason for this redundancy or could the HID
library possibly be removed from the bundle?
With #15 it is now possible to get an error from avr-ar
when building. I can reproduce this reliably on mac OS with Arduino 1.8.8 (I don't want to risk upgrading to 1.8.9 until someone else can reproduce the problem). This happens when adding or removing an unused class variable in a header file (and probably in other cases).
Here's how I was able to reproduce the problem:
Kaleidoscope-Bundle-Keyboardio
rm -rf $TMPDIR/kaleidoscope-$USER
Model01-Firmware
sketchclass Kaleidoscope_
in Kaleidoscope.h
: static uint8_t dummy_;
Surprisingly, the second build fails with a "Malformed archive" error from avr-ar
:
[merlin@brunelleschi:~/test/keyboardio/avr/libraries/Model01-Firmware] 2019-05-26 04:37
$ BOARD_HARDWARE_PATH=../../../.. make
BOARD_HARDWARE_PATH="../../../.." ../../../../keyboardio/avr/libraries/Kaleidoscope/bin//kaleidoscope-builder build-all
Building ./Model01-Firmware 0.0.0 into /var/folders/5j/1cp97c6d49v5xwhfqsfkn5w80000gn/T//kaleidoscope-merlin/sketch/12908385099-Model01-Firmware.ino/output...
- Size: firmware/Model01-Firmware/Model01-Firmware-0.0.0.elf
- Program: 26060 bytes (90.9% Full)
- Data: 1343 bytes (52.5% Full)
[merlin@brunelleschi:~/test/keyboardio/avr/libraries/Model01-Firmware] 2019-05-26 04:38
$ BOARD_HARDWARE_PATH=../../../.. make
BOARD_HARDWARE_PATH="../../../.." ../../../../keyboardio/avr/libraries/Kaleidoscope/bin//kaleidoscope-builder build-all
Building ./Model01-Firmware 0.0.0 into /var/folders/5j/1cp97c6d49v5xwhfqsfkn5w80000gn/T//kaleidoscope-merlin/sketch/12908385099-Model01-Firmware.ino/output...
/var/folders/5j/1cp97c6d49v5xwhfqsfkn5w80000gn/T//kaleidoscope-merlin/ccache/bin//avr-ar: /var/folders/5j/1cp97c6d49v5xwhfqsfkn5w80000gn/T//kaleidoscope-merlin/sketch/12908385099-Model01-Firmware.ino/build/Model01-Firmware.ino_joined.a: Malformed archive
exit status 1
make: *** [build-all] Error 1
We recently merged KeyboardioScanner into Kaleidoscope itself, making the inclusion of it in the bundle unnecessary. We should remove it from the bundle in a few months time.
Both are set to 2303, which throws off the labeling in Arduino.
The buildtools symlink in the avr/ directory is not handled as a symlink in Windows, but just as a random file. A quick google search says we're unlikely to be able to create a symlink compatible with all major platforms, but we can at least document how to manually solve it as part of the cloning process.
There's an issue somewhere with the test scripts, because they exit with zero even if the tests fail, see here for example: it's green, despite tests failing badly:
Ran tests: 33
Total failures: 0
3rd party failures: 12
fail
Something's very unhappy here.
Travis tests currently fail.
I've managed to reproduce a minimal test case locally, even backing down to Arduino 1.8.7.
@algernon can you see if this makes sense to you? I feel like we're either missing a path or a definition in a file somewhere...
jesse master … keyboardio kaleidoscope Kaleidoscope-Bundle-Keyboardio arduino-1.8.7/arduino-builder -compile -hardware pwd
/hardware/ -tools pwd
/arduino-1.8.7/hardware/tools -tools pwd
/arduino-1.8.7/tools-builder -fqbn keyboardio:avr:model01 -libraries . -libraries pwd
/hardware/keyboardio/avr/libraries/Kaleidoscope -libraries pwd
/hardware/.. -libraries pwd
/avr/libraries/Kaleidoscope/../current-libraries -ide-version 10607 -built-in-libraries pwd
/arduino-1.8.7/libraries -warnings all avr/libraries/Kaleidoscope/examples/Basic/Basic.ino
Platform avr (package keyboardio) is unknown
Hi! I've made some custom hardware to drive the Tardis keyboard. I was expecting to have to write the firmware from scratch, but Kaleidoscope has 90% of what I need, plus a ton of extra stuff, and the code is so well structured that it's pretty easy to write the code to support my hardware. But there are a few issues:
MatrixAddr
that every address corresponds to a key, i.e. that rows*columns = number of keys. The simplest fix breaks the static assert, making the code less safe.The code base itself is pretty easy to understand, so I could just copy the Kaleidoscope code that's relevant to my project, make all the changes I want, and be done with it. But I think my code would be more useful if myself and other people could use it as part of a feature rich, actively maintained framework. And there may be some value to potential future developers in having an example of a device implementation for which the off-the-shelf classes can't be used.
Do you have any recommendations?
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.