joric / bluetosis Goto Github PK
View Code? Open in Web Editor NEWBluetooth firmware for the Mitosis keyboard (also supports RF dongle)
Home Page: https://github.com/joric/bluetosis/wiki
License: The Unlicense
Bluetooth firmware for the Mitosis keyboard (also supports RF dongle)
Home Page: https://github.com/joric/bluetosis/wiki
License: The Unlicense
Hey there, I'm interested in getting hacking bluetosis to play nice on a medusa split that uses a matrix circuit as it supports up to a 5x7 layout.
As this is my first time playing around with keyboard code I'm wondering if you could point me to the right direction how to get this done. (I managed to flash the softdevice and precompiled bluetosis, pair it and send some keycodes from handwired keys, and I'm still trying to wrap my head around the code and how to compile it with IAR).
Any tips would be greatly appreciated.
Thank you very much for your work on bluetosis.
I have successfully flashed your software on my keyboard project, and I observed within 5-8mA of current consumption. (Even after power reset to exit debug mode)
The nrf51822 datasheet indicates that the chip should not draw more than a couple hundred micro amps, even with agressive advertising.
Do you observe this too ?
I've adapted this to a matrix keyboard (using yj-14015) and am not able to read which ble gap address I am using. Did you run into any problems with the flash storage feature? I can't see any problem with your code.
I made left and right side of keyboard.
Flashed firmware to left and right side (used COMPILE_REVERSED
for left side firmware)
Switched on power for both sides and switched on BT in my phone. In BT devices browser I see two Mitosis-BT
devices.
If I connect to one of them, like example to right side - I can start to use it, push buttons and type text. But second part of keyboard doesn't work. If I connect to it in BT devices browser too - it starts to work as right side too (so instead of KC_Q
I see KC_Y
). In result I don't have left side but have two right sides :)
Mitosis-BT
devices anyway and connect to both of them?I checked Wiki and source code - still can't get how to switch to left side.
Found only
Press Adjust + ← ↓ ↑ → to switch between three Bluetooth devices and a receiver
Press Fn + Adjust + ← ↓ ↑ → to reset three corresponding Bluetooth devices or erase all bonds
in https://github.com/joric/bluetosis/wiki/Layout and
Pins that may be used for side autodetection:
in https://github.com/joric/bluetosis/wiki/Hardware
and can't find related information.
What changes would need to be made to support a chimera keyboard? Obviously the keyboard layout would need to be updated but are there any other changes required? should I make PR if I make any progress with adding chimera support?
Also is the only way to build this on windows or is there an easy way to build on linux that you know off?
First I want to thank you for the great work you've done. With the default keymap it seems to work pretty well!
Now I wanted to port my keymap from qmk and ran into problems. Keycodes like
#define KC_PIPE LSFT(KC_BSLS)
do not work. I did understand that qmk features are not really included yet. But I am trying to build a fix for that one, but when I check the transmitted key in mitosis_ble_gzll.h
if( key & QK_LSFT ) { modifiers |= 1; key ^= QK_LSFT; }
but that does not seem to work. Maybe I should start to investigate on the debugging options. But I still hope that you could point me the right direction to get that working !-)
Hi,
I'm sorry I just wanted to point out that here:
Redox by /u/RedditSchloer (Redox Wireless a.k.a. codename Ultron) (Reddit)
you mentioned /u/RedditSchloer as the author of the Redox Wireless but actually these are two different projects from two different authors.
The Redox Wireless (aka codename Ultron) autor is /u/TiaMaT102 which is also the author of the original Redox.
I'm sorry I know it's nitpicking.
P.s. You did a fantastic job with the Bluetosis, I'm really impressed. Congrats!
I found that media keys are not working. They just send nothing.
The resistor on the Bluepill (the $1.39 Aliexpress one linked on the Uploading page) that connects BOOT0 to the MCU is wrong, and prevents the BOOT0 jumper from being set high. Without a working BOOT0 jumper, the board cannot be flashed using the UART adapter.
The Bluepill ships with a 100K resistor between BOOT0 and the MCU, but it must be changed to a 10K resistor in order for it to work. The voltage drop from the 100K resistor is too strong forcing the BOOT0 pin on the MCU to always be low. BOOT0 needs to be high in order to ever enter the factory-burned ROM bootloader.
Updating the Uploading instructions would help others who have this same problem. It will affect anyone who is trying to use the UART adapter to program their Bluepill.
For the curious, here's how I figured it out. The reference circuit on page 24 of STM application note AN2586 places a 10K resistor between BOOT0 and the MCU:
You can see in the schematic on this page that the Bluepill has a 100K resistor on BOOT0 (labelled R3):
https://os.mbed.com/users/hudakz/code/STM32F103C8T6_Hello/
It's supposed to be a 0603 package resistor. I didn't have one, but I managed to fit a 0805 package resistor in the same spot. I replaced it with a hot air gun and a wad of flux.
After that, blackmagic.bin flashed as per the instructions on the Uploading page.
bluetosis/firmware/mitosis_ble_gzll.h
Line 253 in 5742edd
Gazell communication not works after BLE connection established. I think this is the priority or timing issue. For example, it works if I change the code like below.
m_timeslot_request.params.earliest.priority = NRF_RADIO_PRIORITY_HIGH;
Line 1317 in 5742edd
I was wonder why the keyboard reset when I push bottom-left most key of right-half, and I found BSP events were caused by registered pin, which is shown at the link. I personally disabled the BSP event handler.
Hello again,
Can you make an example with matrix scanning for all of us non-programmers, if you have time. At least with one row/column. I was trying to understand this code but I'm to dumb for this. It took me 3 days just to compile and flash my module.
Thanks in advance.
Hello and thank you for sharing your work! 👍
I found this module E73-2G4M04S1D
Do you think this will work as a replacement for YJ-14015 and Core51822 (B)?
Thanks
Hi,
https://github.com/joric/bluetosis#iar
Can you please point where this .eww file is, can't find it in your repo.
Thanks
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.