coretechr / keybon Goto Github PK
View Code? Open in Web Editor NEWAdaptive Macro Keyboard
Home Page: https://hackaday.io/project/176239
License: GNU General Public License v3.0
Adaptive Macro Keyboard
Home Page: https://hackaday.io/project/176239
License: GNU General Public License v3.0
what are the exact dimensions of the OLED screens? I want to make this myself, but cannot find a screen of the same product key where I live
Hello,
I like your keybon very much, I made one too, but I don't know how to use tx/rx to burn my board,
For bl, I chose to use stlink, I flew dio and clk on the board, which allowed me to flash the bootloader smoothly, and it could be recognized by the computer, but I don't know how to burn the program in the arduino into it
I don't know how to get the board into dfu mode
Please,can you provide its icon library file?
The bootloader has been flashed normally and the device has been recognized, but when programming the program, the output is:
WARNING: library JC_Button claims to run on avr architecture(s) and may be incompatible with your current board which runs on STM32F1 architecture(s).
Sketch uses 36364 bytes (55%) of program storage space. Maximum is 65536 bytes.
Global variables use 6048 bytes (29%) of dynamic memory, leaving 14432 bytes for local variables. Maximum is 20480 bytes.
Moreover, the screen does not light up after programming, and the button settings do not respond.
Sketch uses 36364 bytes (55%) of program storage space. Maximum is 65536 bytes.
Global variables use 6048 bytes (29%) of dynamic memory, leaving 14432 bytes for local variables. Maximum is 20480 bytes.
maple_loader v0.1
Resetting to bootloader via DTR pulse
Searching for DFU device [1EAF:0003]...
Reset via USB Serial Failed! Did you select the right serial port?
Assuming the board is in perpetual bootloader mode and continuing to attempt dfu programming...
Found it!
Opening USB Device 0x1eaf:0x0003...
Found Runtime: [0x1eaf:0x0003] devnum=1, cfg=0, intf=0, alt=2, name="STM32duino bootloader v1.0 Upload to Flash 0x8002000"
Setting Configuration 1...
Claiming USB DFU Interface...
Setting Alternate Setting ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
Transfer Size = 0x0400
bytes_per_hash=727
Starting download: [##################################################] finished!
error resetting after download: usb_reset: could not reset device, win error: ָ�������ڵ��豸��
state(8) = dfuMANIFEST-WAIT-RESET, status(0) = No error condition is present
Done!
Resetting USB to switch back to runtime mode
timeout waiting for COM5 serial
The measured screen used the 4.5 yuan ssd1315 driver screen and there was no problem.
I had to rename the button library based on your link
#include <JC_Button.h> for it to compile.
Great project BTW :)
Hey,
I've designed a 12 button version of Keybon, and I wanted to know if you could share the source files for the CAD design, so I can modify it to integrate the 3 additional button.
Of course, I'll share my changes in a fork!
Cheers,
Romain
When exporting the gerber files, the holes for the USB C port are not generated. How do I go about fixing this?
Hey,
I have a failure to build if we are using a recent release of the GFX Library.
I manage to build properly with v1.7.5.
The new releases of this library introduced changes in the files for MonoOLED (later renamed to GreyOLED) that include I2CDevices.h
.
This inclusion leads to a weird error:
Adafruit_I2CDevice.cpp:88:47: error: invalid conversion from 'const uint8_t* {aka const unsigned char*}' to 'uint8* {aka unsigned char*}' [-fpermissive]
Anyway, it builds fine with v1.7.5. I recommend putting a comment in the code regarding the version or in the documentation somewhere!
Hi!
I managed to assemble the hardware for this and I am now trying to get the firmware built but I am not having any luck. Can you provide a bit more information on the versions of the libraries that were used? Or maybe even provide a pre-built bin file that can be flashed onto the board?
I've downloaded the latest versions of the Arduino_STM32 that was linked on the hackaday project, I am also using the latest versions of other libraries that are used and I am getting the following errors when I am trying to compile the firmware source:
/Users/roli/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp: In member function 'bool Adafruit_I2CDevice::write(const uint8_t*, size_t, bool, const uint8_t*, size_t)':
/Users/roli/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp:88:47: error: invalid conversion from 'const uint8_t* {aka const unsigned char*}' to 'uint8* {aka unsigned char*}' [-fpermissive]
if (_wire->write(prefix_buffer, prefix_len) != prefix_len) {
^
In file included from /Users/roli/Documents/Arduino/hardware/Arduino_STM32/STM32F1/libraries/Wire/Wire.h:42:0,
from /Users/roli/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.h:1,
from /Users/roli/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp:1:
/Users/roli/Documents/Arduino/hardware/Arduino_STM32/STM32F1/libraries/Wire/utility/WireBase.h:123:12: note: initializing argument 1 of 'size_t WireBase::write(uint8*, int)'
size_t write(uint8*, int);
^~~~~
/Users/roli/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp:97:31: error: invalid conversion from 'const uint8_t* {aka const unsigned char*}' to 'uint8* {aka unsigned char*}' [-fpermissive]
if (_wire->write(buffer, len) != len) {
^
In file included from /Users/roli/Documents/Arduino/hardware/Arduino_STM32/STM32F1/libraries/Wire/Wire.h:42:0,
from /Users/roli/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.h:1,
from /Users/roli/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp:1:
/Users/roli/Documents/Arduino/hardware/Arduino_STM32/STM32F1/libraries/Wire/utility/WireBase.h:123:12: note: initializing argument 1 of 'size_t WireBase::write(uint8*, int)'
size_t write(uint8*, int);
^~~~~
Multiple libraries were found for "Wire.h"
Used: /Users/roli/Documents/Arduino/hardware/Arduino_STM32/STM32F1/libraries/Wire
Not used: /Users/roli/Documents/Arduino/hardware/Arduino_STM32/STM32F1/libraries/WireSlave
Multiple libraries were found for "USBComposite.h"
Used: /Users/roli/Documents/Arduino/hardware/Arduino_STM32/STM32F1/libraries/USBComposite
Not used: /Users/roli/Documents/Arduino/libraries/USBComposite_stm32f1-0.99
exit status 1
Error compiling for board Generic STM32F103C6/fake STM32F103C8.
Hi, everyone. I finished one keybon, and i have some problem. Firstly - after flash bootloader with keybon.generic_stm32f103c, i can't connect keybon to pc (windows 10), becouse error message usb device not recognized. But if i flash bootloader with generic_boot20_pc13 from rogerclarkmelbourne and remove the jumper boot0, keybon defined by the system as maple serial and i can flash arduino-hardware.
secondly - after flashing keybon.ino keyboard work fine, more precisely buttons, but screen work only second. Do you help me?
Hello! First of all - thank you for an amazing project!
I'm going to build one, but during the BOM list checking I've stumbled upon the difference of "C1,C2,C3" capacitors between the EAGLE board schema items list and the actual BOM inside this repo. Keybon REV 1.1 BOM.csv
file has 0603
package defined for this capacitors, but in EAGLE schema they have 0805
package. What should I trust?
trying to use this as a custom streamdeck, to be used with obs. but as the current iteration of keybon, there is no way to change the default screen, except changing the sketch in the Arduino ide, and there is no way to have the companion not switch layouts when the focus of the current window changes.
would be nice to have a toggle function to keep a certain layout active full-time, regardless of what window is active.
I'd edit the companion app myself, but I do not know enough c# to be able to add this functionality.
I realize that this is not a use for what keybon was originally intended for, but I think it could be used like a stream deck, just without all the fancy features of a stream deck. implemented.
I just would like to be able to have it send a few certain button presses for hotkeys for OBS Studio, but with the current version of keybon this is pretty much impossible without doing some major coding on my part.
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.