Coder Social home page Coder Social logo

mattdibi / redox-keyboard Goto Github PK

View Code? Open in Web Editor NEW
1.8K 40.0 165.0 73.4 MB

Ergonomic split mechanical keyboard

License: MIT License

redox redox-keyboard redox-handwire keyboard mechanical-keyboard pcb assembly guide split-keyboard ergonomic-keyboard

redox-keyboard's Introduction

Hi ๐Ÿ‘‹, I'm Mattia Dal Ben

Contacts

Static Badge

redox-keyboard's People

Contributors

cbosdo avatar chrismelba avatar decappi avatar devinclark avatar dunk2k avatar jordevorstenbosch avatar kubami avatar mattdibi avatar pandalanax avatar qapamcfly avatar relokin avatar shimanogov avatar unjordy avatar wsyxbcl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

redox-keyboard's Issues

Flat cut case design

Would it be possible to get the stl from the japanese guy that did the acrylic cut case?

Does precompiled-basic-receiver.hex is was build from mitosis sources?

Seems like this repo doesn't have sources for Nordic MCUs Firmware files - is it because of that precompiled binaries compiled from original mitosis sources without modification?
I'm interested because is not clear for me is it possible to modify that firmware or it a closed source things.

right RGB lights not working

Hi, I build a rev1 redox with RGB and right side RGB does not work.
It is already soldered and it will be a pain to desolder the micros and the switches. Hope someone has solved this issue.
(all switches work OK see 3) and all RGB leds turn on see 2) )
what I tried:

  1. flashed redox_rev1_default_RGB.hex(precompiled mattdibi/redox-keyboard):
    -left side: OK both keystroke detection and RGB
    -right side: no keystroke detection no RGB
  2. flashed redox_rev1_default.hex (precompiled mattdibi/redox-keyboard)
    -left side: OK detecting heystrokes and OK RGB
    -right side: no keystroke detection but OK RGB
  3. compiled and flashed from source default keymap(make redox/rev1:default)
    -left side: OK keystroke detection & OK RGB
    -right side: OK keystork detection & no RGB (sometimes i get the 1st led on set to green)

if i try to set comunication to I2C i get very slow reaction on both RGB and keystorkes

Slave Not Working with RGB Underglow

Hey -

This is probably my fault. Still debugging.

I can't get the slave side to work. I have set the config as described in the documents, using SERIAL and the proper number of LEDs. I have set it to MASTER_RIGHT. I have not flashed the EEPROM yet.

It seemed that flashing the EEPROM was unnecessary if you don't set EE_HANDS.

I flashed both sides with the same firmware. Connecting the USB to both sides, shows both sides working (though using right hand keys since I flashed right master on both).

I'm going to check continuity along the two TRRS connectors but I was wondering if there was a recent bug fix in the firmware or something?

P.S. - Right hand should be "KC_SLASH" based on your diagram at the bottom instead of "KC_BKSL"

Is the 4th LED on the wireless receiver addressable?

@mattdibi Is it possible for me to control the state of the 4th LED on the receiver of the redox-w?

I'd like to be able to control it and light it up when CAPS lock is on, I've written the rest of the code to handle this, but my hardware/arduino knowledge is lacking here.

I'm sure it's something I need to add here

#define red_led_off   PORTF |= (1<<5)
#define red_led_on    PORTF &= ~(1<<5)
#define blu_led_off   PORTF |= (1<<4)
#define blu_led_on    PORTF &= ~(1<<4)
#define grn_led_off   PORTD |= (1<<1)
#define grn_led_on    PORTD &= ~(1<<1)

COMBO feature

I got a redox wireless from falbatech and I'm trying to flash my own firmware

I have several keyboards and share many features across them including COMBO keys. However if I enable COMBO with the redox_w firmware, the keyboard doesn't produce any keys. If I remove COMBO it works just fine

Any ideas on what could it be?

three columns can not work

I make a redox-wireless keyboard, the right half can work well, but in the left half, three columns can not work, others can work, I don't know how to solve the problem.

the keys in the red box , none of them can work
image

this is the back side
image

image

RGB Underglow not working

Hi!

First things first: Thank you very much for this nice project. I built a wired redox over the couple last weeks and i'm close to finishing this project. The keyboard functionality itself does work on both halves, but i have problems getting the RGB underflow (6 LEDs per half) working.
I've flashed both halves with the same firmware using the following config.h:

/* Use I2C or Serial, not both */
#define USE_SERIAL
// #define USE_I2C

/* Select hand configuration */
#define MASTER_LEFT
//#define MASTER_RIGHT
// #define EE_HANDS

#undef RGBLED_NUM
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 12
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8

I didn't write the EEPROM content. This isn't needed when i'm not using EE_HANDS, right?

Right after flashing, the RGB underflow didn't work. Should it light up per default?
After checking the current keymap in the qmk repo, i saw that the light can be toggled on the ADJUST layer with RGB_TOG. I've tried that but it didn't help. Other keys (such as F3, F4) are sent fine, so i think that i'm on the right layer.
The rules.mk is still on the default values:

BOOTMAGIC_ENABLE = no      # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes       # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
CONSOLE_ENABLE = no         # Console for debug(+400)
COMMAND_ENABLE = yes        # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no            # USB Nkey Rollover
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality on B7 by default
MIDI_ENABLE = no            # MIDI support (+2400 to 4200, depending on config)
UNICODE_ENABLE = no         # Unicode
BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no           # Audio output on port C6
FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
RGBLIGHT_ENABLE = yes       # Enable WS2812 RGB underlight. 

SPLIT_KEYBOARD = yes

DEFAULT_FOLDER = redox/rev1

The rules.mk in the default keymap is also still on the default and enables RGBLIGHT_ENABLE

Hardware-wise, i checked that the RGB strips have +5 Power and i also checked that TX0 on the left hand master is connected to the DIN of the RGB strip in the left hand.

Do you have any suggestions how i can debug this further?

redox-w question: Have you had issues with some columns not registering when key from nearby column is held?

Hello, thanks for your project, it helped me a lot with my own custom keyboard.
I'm using wiring similar to yours (you don't use pin 8),
Screen Shot 2019-04-22 at 00 40 44
but for some reason I'm having weird issue with neighboring columns. When I'm holding down key from one column another one(neighboring) won't work.
For example:

  • if I'm holding shift(c0r3) key then none of keys from c1 will work (1 q a z).
  • if I'm holding z(c1r3) key then none of keys from c2 work (2 w s x) but c0 keys will work just fine as well as all other keys, so keys from c0, c1, c3, c4, c5, c6 will still work.

Have you had any issues like that? Can you test such scenarios on your keyboard (left part)

Thank you.

Pcb board rotary encoder and keyboard lights

Is it possible to add Iris style linear rotary encoders to the Redox?

I really want to be able to add the ec11 rotary encoders the Iris keyboard has + backlighting for the keys individually

EE_HANDS eep files

Hi,

The specified .eep files for flashing eeprom are not anymore in QMK codebase:
avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:keyboards/lets_split/eeprom-lefthand.eep


avrdude.exe: Device signature = 0x1e9587 (probably m32u4)
avrdude.exe: reading input file "keyboards/lets_split/eeprom-lefthand.eep"
avrdude.exe: error opening keyboards/lets_split/eeprom-lefthand.eep: No such file or directory
avrdude.exe: can't determine file format for keyboards/lets_split/eeprom-lefthand.eep, specify explicitly
avrdude.exe: read from file 'keyboards/lets_split/eeprom-lefthand.eep' failed

Some are available in /path/to/qmk/quantum/split_common/.
Can we use them ? I fyes, could you update the documentation ?

keyboard not working?

Hey,

thank you for this reduced ErgoDox design, I think I'm really going to like it.

My FalbaTech order arrived today. I've soldered everything according to the build guide. However, when I try to flash the micros it seems the reset button is not working:

$ make redox/rev1:default:avrdude
QMK Firmware 0.6.140
Making redox/rev1 with keymap default and target avrdude

avr-gcc (GCC) 8.2.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Size before:
   text	   data	    bss	    dec	    hex	filename
      0	  23468	      0	  23468	   5bac	.build/redox_rev1_default.hex

Compiling: tmk_core/common/command.c                                                                [OK]
Linking: .build/redox_rev1_default.elf                                                              [OK]
Creating load file for flashing: .build/redox_rev1_default.hex                                      [OK]
Checking file size of redox_rev1_default.hex                                                        [OK]
 * The firmware size is fine - 23468/28672 (5204 bytes free)
Copying redox_rev1_default.hex to qmk_firmware folder                                               [OK]
Detecting USB port, reset your controller now..................................................................................................................................................................................................................................................................................................................................^Cmake[1]: *** [avrdude] Interrupt: 2
make: *** [redox/rev1:default:avrdude] Interrupt: 2

I tried various things to get the reset buttons to work - in the end I just shorted GND and RESET.
Now I've flashed the keyboard with the RGB underglow modification, but no single key stroke is recognized:

Any ideas what might be the issue?

I've soldered the SMD diodes included in the FalbaTech package, not the regular ones.

Best,

PCB

Is there any consideration to open-source the PCB shown in the README?

Redox Wireless Interference issues

Hi!
I just built a redox wireless and flashed it and got it working but i have trouble using it due to interference.
Especially at home in the apartment, if i press a button it may (if lucky) send a keypress or it may send multiple keypress even though i just pressed once. It does not matter if i have the reciever 1cm from the keyboard or 50cm.
I have also tested it at work when i was alone and it worked better, but when my collegues started working i got so much interference that the keyboard was unusable.
How do i reprogram the reciever and transmitter to get less interference?
I read that you can modify in the gazell firmware and modify the default channel table /components/properitary_rf/gzll/nrf_gzll_constants.h.
If i modify (i don't know what channels to use instead) do i need to compile a new hex? (i don't know how to compile a new hex but i am willing to learn)
Thanks!

Receiver case

Hi,

I am is process of building the redox wireless keyboard. I looked the files available for Redox-w, but could not find a 3d printable case for the receiver. Can you please provide something for receiver?

ALPS compatibility

Hi, I was just wondering if this design would fit ALPS type switches?

I know it says Cherry MX in the README, but the holes look similar to iris and that supposedly supports alps.

Question mark

Not sure where is the right place to ask, but I am enjoying my first Redox Wireless keyboard and so far, so good... slowly learning hot wo type again :) So far, the biggest problem is -- how do I type question mark? :)

Missing Detail in Length of Extension for 3d printed case.

use the diodes legs leftover from previous steps as this will make the controller's USB port much lower, this is needed for the 3D printed case.

This is mentioned in the readme. Can we make this more specific. I am trying to mod the case and needed this detail.

Redox Wireless info

Hi, planning on a build soon. Entertaining the idea of the wireless but had a few questions. Where'd you source the wireless pcb? How's the battery life so far? Thanks!

RGB underglow on redox_w

Hi! currently writing this from my newly built Redox rev-1 (with wich i'm falling in love, great design!) i was wondering if you have thought about a redox wireless with rgb underglow. I have found this repo that achieves somewhat the same thing.

So, have you tought about it? maybe i could get it working.
Also haven't really looked into mitosis firmware deep, would a hardware mod be necesary for this to work? it does not look like it would from what i've seen in that repo

Thanks in advance, best regards!.

Add Mill-Max and Peel-A-Way hotswap details to rev 1 README.md

I've successfully assembled a fully hot-swappable Redox with Falba's PCBs and cases, Mill-Max 7305 sockets for the switches, and Peel-A-Way sockets for each microcontroller. The process is fairly simple, but it involves a couple of changes to how one would normally assemble the keyboard. I've taken several photos detailing how the sockets should fit. If you're interested adding the steps to the Redox rev 1 README, would you prefer a pull request, or a separate document you could edit into the existing README?

Integration of trackpoint - possible?

The design of the redox keyboard without any cables looks really, really nice and I would love to replicate that as the cables have always been a source of problems and tend to get in the way. However I had promised myself that my next keyboard would integrate a trackpointer as that is one of the key things I really miss having used IBM/Lenovo laptops for a long time.

Incorporating a trackpointer is supported by the QMK firmware and is relatively well documented for directly connecting a salvaged trackpointer to the teensy board. Background info:

QMK_docs: https://github.com/qmk/qmk_firmware/blob/master/docs/feature_ps2_mouse.md
walkthrough with pinouts and the like: https://github.com/alonswartz/trackpoint#tmk-firmware-changes-and-tweaks
example on ergodox: https://geekhack.org/index.php?action=dlattach;topic=82599.0;attach=138751;image (I would leave out the mouse-buttons & put the trackpointer between fgv keys instead)

Looking through the code for the redox-firmware I struggle to see whether integrating a trackpointer with the wireless version would be feasible although the Core51822B in the transmitter seems to have the UART still free; yet I guess that would still need (a lot of?) dedicated code to get the PS/2 key codes to the Arduino board. Something that is probably beyond me.

As I personally would find it a great enhancement/feature. Do you have any insights in whether integrating a trackpointer in the wireless version is even feasible? If yes: how hard would that be?

Redox rev.1 case will fit?

Hi,

I'm looking to build a 3d printed version of this. Will the wired case fit the wireless version? I assume it'll just have an extra couple of holes for the defunct cables, but want to check that the additional chips won't foul on anything etc.

Keycaps

Hi there,

I am struggling with the size for the keycaps and where to get them.

I see from the documentation that sizes of 1, 1.25 and 1.5 are required. Do I have to use those exact sizes? Where are they located exactly. It looks like the 1.25 are the outer columns on each half but I am not sure. The 1.5u are located at the thumb cluster?

Does anyone has recommendations where to buy a decent set?

I am pretty new to this "businesses" ;-)

Redox-w firmware flash help

  • In a terminal show nrf51.cpu: hardware has 4 breakpoints, 2 watchpoints.
  • another terminal step by
echo reset halt | telnet localhost 4444
echo nrf51 mass_erase | telnet localhost 4444
echo reset halt | telnet localhost 4444
echo flash write_image `readlink -f path/to/receiver.hex` | telnet localhost 4444
echo reset | telnet localhost 4444
  • same step for left and right hand.

  • then flash qmk_redox_w_default.hex to pro micro.

  • YJ-14015 and battery has same voltage (near 3v)

also repeat flash step with another 3 board, only one board can working after first time flash :(
I am very confused why only the first time working.

flashed firmware... now what?

So i flashed the firmware to the receiver and both left and right sides. i connect the receiver and turn on the keyboards but nothing works.

is there a specific sequence i need to follow? are the left and right sides automatically paired to the receiver?

Can't flash entire 43kb hex image to redox-w keyboard. Only 16kb writes.

I was having range issues (unreliable transmission within just a few feet) with my redox-w so I set out to change the tx power to 4dB. I updated the main.c to add that change and subsequently bricked my keyboard (mine came from Falbatech as partially assembled so I never had to flash anything other than qmk). Here is the output from program_left.sh. I am running Arch Linux for what it's worth.

=============================== MAKING ================================
rm -rf _build
echo  Makefile
Makefile
mkdir _build
Compiling file: system_nrf51.c
Compiling file: main.c
Compiling file: nrf_delay.c
Compiling file: nrf_drv_clock.c
Compiling file: app_util_platform.c
Compiling file: nrf_drv_common.c
Compiling file: nrf_drv_rtc.c
Assembly file: gcc_startup_nrf51.s
Linking target: nrf51822_xxac-keyboard-left.out
make[1]: Entering directory '/home/wrose/git/nRF5_SDK_11/redox-w-firmware/redox-w-keyboard-basic/custom/armgcc'
Preparing: nrf51822_xxac-keyboard-left.bin
Preparing: nrf51822_xxac-keyboard-left.hex

   text	   data	    bss	    dec	    hex	filename
  15424	    140	   1280	  16844	   41cc	_build/nrf51822_xxac-keyboard-left.out

make[1]: Leaving directory '/home/wrose/git/nRF5_SDK_11/redox-w-firmware/redox-w-keyboard-basic/custom/armgcc'
43824	/home/wrose/git/nRF5_SDK_11/redox-w-firmware/redox-w-keyboard-basic/custom/armgcc/_build/nrf51822_xxac-keyboard-left.hex

============================= PROGRAMMING =============================
Trying ::1...
Connection failed: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Open On-Chip Debugger
> reset halt
target halted due to debug-request, current mode: Thread 
xPSR: 0xc1000000 pc: 0x00000d78 msp: 0x20004000
> flash write_image erase /home/wrose/git/nRF5_SDK_11/redox-w-firmware/redox-w-keyboard-basic/custom/armgcc/_build/nrf51822_xxac-keyboard-left.hex
auto erase enabled
Unknown device (HWID 0x00000138)
using fast async flash loader. This is currently supported
only with ST-Link and CMSIS-DAP. If you have issues, add
"set WORKAREASIZE 0" before sourcing nrf51.cfg to disable it
target halted due to breakpoint, current mode: Thread 
xPSR: 0x61000000 pc: 0x2000001e msp: 0x20004000
wrote 16384 bytes from file /home/wrose/git/nRF5_SDK_11/redox-w-firmware/redox-w-keyboard-basic/custom/armgcc/_build/nrf51822_xxac-keyboard-left.hex in 0.764241s (20.936 KiB/s)
> reset
> Connection closed by foreign host.

I have tried setting WORKAREASIZE to 0, and to 0x10000 (64k), but no matter what it always says "wrote 16384 bytes." Is that correct? My hex file is like 43kb - shouldn't it be writing that many bytes (43832 to be exact) to the nRF51?

It seems like the answer to this is yes. Unfortunately I can't seem to find anyone talking about this problem when I search.

Any ideas?

How to flash the keyboard?

Hi,
I have no idea how to flash the keyboard with a new firmware (I'm using Ubuntu 18.04). I can't find /dev/ttyACM0 device or similar.

I have the redox keyboard with RGB Led. The README says that I have to use the serial port, but I don't know how to set the keyboard to program mode.

thanks for help
Markus

Buttons don't work or output character many times

Hi! I soldered my first redox keyboard with PCBs from falbatech. Unfortunetly I needed to desolder one controller and solder two buttons under it because I forgot to solder them.

Now one half's buttons don't work or output character many times, even if I only connect one half through mini-usb. Any debugging tips, hints? Should I buy one more pcb, controller and buttons ?

Thanks!

Receiver assembly

When assembling the receiver,.. do you solder on the Pro Micro then flash firmware? I originally had them soldered together, but the receiver leds never lit up, only the pro micro.

No key presses working

Hi!
I've (in theory) just finished soldering and flashing firmware for my Redox, however no keys are working on either side. I believe my flashing went well since when I plug in either side now, it is displayed as a Generic Keyboard device in windows Device Manager rather than as an Arduino Pro Micro as it had before. However, like I said, none of the keys work on either side, neither when connected individually or together with the TRRS.

I don't see any obvious soldering issues. Any ideas? Here's a couple pictures of the backs of the boards, dunno how much good that will do :p https://imgur.com/a/Duoo4bg

RGB Underglow Problems

I'm trying to get RGB underglow to work, but when I follow the instructions it only works on master.
If I recompile and re-wire the strip connections can switch master to the other hand, though.

If I had to guess, I'd say it's either the firmware or the TRRS connection?

Middle row (a,s,d,f,...) causes whole column to trigger

I just finished soldering my Redox. After flashing I noticed that pressing a middle row key causes a press on all switches in the same column.

The other half does not have the same issue. I'm quite sure that the diodes are correctly soldered, but I don't have a clue what could be the culprit here. Especially since the whole row is affected.

Rotary Encoder on redox wireless?

Hi!
Would it be possible to add a rotary encoder to the wireless redox?
How would you wire it to the wireless transmitter and is it hard to fix the code to handle a rotary encoder?

Best Regards /Anton #

proton-c compatibility?

Hello and congratulations for this great project.
I was looking for a wireless alternative to my ergodox, and this looks quite awesome.
However, now that I'm going to make an "upgrade" I would love to get rid of space limitations I currently have. Proton-c is an arduino pro micro alternative that has way more space for the firmware, and it should be a drop-in replacement.
I think it still has some problems with split keyboards, but since here we only have one keyboard maybe it is not that "split" at the end.
Do you think it will be compatible?

Wireless range issues

I have been having issues with only one side of my redox wireless. The right side can go well over a few feet with no missed keys, but the left side has to be within a foot for the receiver to pick it up. I know it may be a shot in the dark but any ideas of what I can try to trouble shoot? (I have already tried mucking about with the batteries and know that isn't the problem)

How to check TRSSS continuity ?

Hello,

First of all, thanks for this project, even if my keyboard isn't fully functional yet, it is still looking good (Falba bamboo) :)

Now, my issue is very similar to #25, but I can't seem to find where the problem is from:

  • I've flashed the QMK redox default (use serial, master left) on both sides, using QMK Toolbox
  • Both sides work when plugged (although with left hand mapping)
  • The leds on both sides light up in purple when everything is plugged, but the slave half keys don't work.
  • I've tried several TRRS cables, and checked the cables themselves (they're OK)
  • I've not soldered the resistors, as instructed in your build guide

I'm OK with code, but only so-so with electronics. Could you maybe make some kind of checklist on what to check to find what's wrong ? I'd be happy to contribute to the troubleshooting guide :D

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.