Comments (8)
Interesting thoughts.
Having a easy to buy smallish dongle would be nice, but I doubt we would generate enough volume for a true nano dongle to be developed. So personally I'm more likely to stick to the Logitech dongle.
from keyplus.
This is something that I'm interested in too. I actually ordered this nrf52840 dongle the other day to play with.
The first would be to use Nordic's ESB libraries
A while ago I used the nrf24 ESB library to get some basic matrix scanning + nrf24 RF working. It seems pretty straight forward to get it working. Haven't got any USB/BT stuff going yet. That code is a bit old (I was using the preview dev kit), but I try clean it up and get something committed to the repo soon.
The Nordic SDK has allowed redistribution of SDK files from v12 onward, however, the ESB library is released under a restricted 5-clause BSD license that might not be compatible with the MIT license of this firmware
The MIT license is compatible with Nordics 5-clause license, so no worries there.
Obviously for the softdevice, people would have to download it from the Nordic website and flash it themselves/copy it into the Keyplus directory.
The way keyplus is designed, you can configure it via USB. So most people can just flash a pre-compiled binary which includes the softdevice.
from keyplus.
Awesome. While my nrf52 dongle arrives in the next 20-60 days, is atmega32u4 support working? I would like to get the nrf51 communicating with nrf24 modules but only have a couple of pro micros available.
from keyplus.
Hi there,
This is a really great project! Just see this for a while, and must say something about nrf52840 because I am working on it. See trkeyboard.com and nine-fox.com, nine-fox.com/pad
-
To use a module like holyiot or other.
This would be really great if the pcb has enough space and only 1 module is needed. Thats to say, the price is affordable and looking is acceptable. However, for a space limited keyboard, eg, a 4x4 pad, 40%, 60%, using a such large module is quite limited. For a split keyboard, eg, wireless split keyboard like mitosis, you may need 3 modules, the prices will be really high. In my keyboard, eg, https://geekhack.org/index.php?topic=99719.0, I need four 840 chips. If I used a module, the price will be very high. So I would suggest to use chip directly instead a module. -
Avoid to use atmega32u4
If you choose to use this nrf52840, get rid of avr. AVR is not a wireless targeted chip, that's to say, its high power cost. If you want to create a keyboard with a long battery life, leave it. -
The firmware is different
If you choose to use nrf52840, get rid of all source codes of avr parts. You may need to implement a totally new one. It needs huge work but it is needed, because the mechanism is totally different between avr and 840. -
840 is still buggy.
I just got the product notification before China New year from nordic that the improved product will be on market later this year. Also, the latest sdk 15.3 contains bugs(It cost me a lot time to find them and fix them), see the devzone.nordicsemi.com -
The communication protocol.
I would suggest to use BLE to communicate. Not only its simple and easy to implement, but also the device with BLE support can connect to it, without the dongle, for example, iPad or iPhone. With the same work, the code can be used in another scenario.
Anyway, this is really a great chip and you can implement a lot of keyboard using it. Good luck with it!
Thanks,
nine-fox
from keyplus.
@bezmi Hey made a lot of progress on this now. The nrf52840 dongle code now is basically equivalent to the nRF24LU1+ version. Here's some pre-compile code if you want to give it a go: keyplus-f9a0f8c.tar.gz. The hex file was compiled for the Nordic nRF52840 dongle and you can flash it easily with nRFconnect. I'm not sure if it will run on the Holyiot dongle without modification since it expects a bootloader/mbr to be in place.
Do you know if the Holyiot dongle comes flashed with a bootloader? I looked at the store page and it breaks out the SWD pins, but it'd be annoying for people if that's required to flash it.
I've also made a lot of progress on BLE. I've got multi-protocol BLE and ESB working. Right now I'm using my two Xmega+nRF24 and unifying mouse with a nRF58204-DK relaying the keystrokes/mouse over BLE. The performance seems to be pretty good for the keyboards. You can notice that the latency of the mouse is bit higher, but it's still usable.
The main things left to do now are combine the different modes (USB+ESB-rx, BLE+ESB-rx, ESB-tx) so that they will work all together. And there's a couple of things that still don't work over BLE yet (layout updates, mouse pairing). I might start look into making a PCB for an nRF52840 board too.
from keyplus.
@nine-fox
1. Yeah, I'll have to look around cheap options, but price isn't too much of a concern for me run now since I don't plan on mass producing it or anything.
3. The code runs on a few different chips already, so it's modular enough to support both AVR/ARM without too much difficulty.
5. Yeah BLE is more convenient. I'm going to try and support both ESB and BLE since they both have there advantages. Also, in my firmware you can remap the mouse buttons of Logitech Unifying mice like a keyboard with the ESB firmware, so it's nice to have both options.
from keyplus.
That's awesome! Unfortunately I'm super busy with my final semester of uni until mid June, so i won't be able to do much testing until then. The HolyIOT dongle doesn't come with a bootloader, but the casing is easy enough to remove for access to the SWD pins. Obviously this isn't ideal for the average keyboard builder, but I purchased it solely based on the compactness.
This gives me more motivation to work on ESB compatibility for my nrf51 keyboard, because I should now have a device that will work with keyplus for testing.
How is the current draw over BLE? I've assumed it would be a little too much for the coin cells, so was envisioning a scenario where we could have the split transmitters (esb tx) communicating to PC via nrf52840 (esb rx + USB), with the nrf52840 dongle also able to relay keystrokes to secondary devices over BLE.
from keyplus.
How is the current draw over BLE? I've assumed it would be a little too much for the coin cells
Yeah, BLE+ESB will probably use about ~10mA when it's in use since it needs to leave the RF receiver on to listen for ESB packets. So too much for a coin cell. You could get this lower by using BLE for inter-keyboard communication like I think nine-fox is doing, but I think there'd be some extra complications especially if you have more than 2 devices.
Wake-up receivers might allow for a really low power version, but they're still being developed/researched so not viable at the moment. However, they are being considered for WiFi (802.11ba), so they'll probably make their way to Bluetooth chips too.
from keyplus.
Related Issues (20)
- can not wakeup windows system when press any key HOT 1
- EraseFailed when flash a unirecv, Error code: 49 HOT 6
- Layout example for directly wired keys without matrix HOT 4
- Build for Xmega does not work HOT 2
- How to debug wireless issues? HOT 18
- Get battery level
- Windows EXE flasher - source code available? HOT 2
- Comparision with QMK? HOT 5
- Xmega firmware does not build anymore HOT 2
- making a C# app to flash to atmega32u4 with this bootloader.
- Compile for 16kB dongles HOT 4
- Is Keyplus dead? HOT 21
- Implement AES in CTR mode instead of ECB HOT 3
- Intehex Module HOT 7
- Missing dependencies for AppImage build
- Idea for Linux driver: make a protocol for sending keycodes over serial ports.
- Port keyplus emulator to windows
- Port keyplus emulator to macOS
- Track key usage statistics in keyplus emulator so it can keyboard generate heatmaps HOT 1
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 keyplus.