massdrop / mdloader Goto Github PK
View Code? Open in Web Editor NEWThis project forked from patrickmt/mdloader
Massdrop Firmware Loader - for CTRL / ALT / SHIFT / Rocketeer keyboards
License: GNU General Public License v3.0
This project forked from patrickmt/mdloader
Massdrop Firmware Loader - for CTRL / ALT / SHIFT / Rocketeer keyboards
License: GNU General Public License v3.0
I followed all the instructions. Whenever I try to flash a firmware on the Alt it flashes and the keyboard boots back up just fine, but the output freezes at Closing port... without SUCCESS at the end.
Scanning for device for 60 seconds
...................
Device port: COM6 (SAMD51J18A)
Opening port 'COM6'... Success!
Found MCU: SAMD51J18A
Bootloader version: v2.20 Mar 27 2019 10:04:48 [alt]
Applet file: applet-flash-samd51j18a.bin
Applet Version: 1
Writing firmware... Complete!
Booting device... Success!
Closing port...
The terminal window freezes and I cannot use it anymore. I have to force close it and start a new one. I tried git-bash, cmd, powershell. I tried different terminals. Every shell and terminal freezes at that line.
I compiled the firmware at Drop's official configurator. I've also compiled qmk from scratch. Just the default firmware, no changes to anything. Same result.
I was using the YMD96 keyboard before the Alt, which had QMK as well. I had no problem compiling and flashing that keyboard.
This makes the process of making changes to the code and flashing very tedious. I'm also concerned if there's something wrong with the keyboard or the build environment I'm using.
I'm using
I'm trying to use QMK Configurator to change my keyboard configuration but Im at a loss since it doesn't have a default layout to load and I can't find a JSON default layout file to import either. Anyone know how I can do this?
Does anyone actually have way to get the extra function keys working with the drop configurator? I have my profile made but I dont know how to get around whatever limitation stops them from working
Hey, I just got the Drop CTRL and tried loading the firmware on a MacOS Big Sur, but I get this message:
❯ ./mdloader_mac -l
Massdrop Loader 1.05
Massdrop Loader Copyright (C) 2018-2020 Massdrop Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY
Bootloader port listing
-----------------------------
No devices found!
I just got my Drop SHIFT in the mail today and I was trying to change the LED colors using QMK. I followed the instructions in the readme for this software but for some reason it cannot find the device port. I tried both using Fn + B as well as pressing the reset button on the bottom of the keyboard to put it into DFU mode and both did not work.
Here is the verbose output: mdloader.log
It spams those prompts for 60 seconds before throwing an error that it could not find a valid device port.
not sure if this is the right place to post this, but here goes
The toggle layer(TG) command wont let you choose the same layer as it is on, thus making it impossible to use it as a toggle.
(the qmk configurator works as expected)
I wanted to test something out and needed to remap a key, so I made a layout on the configurator and flashed it. Before I did, however, I made sure to read my CTRL's stock firmware into a file with: (mdloader --list
reported my keyboard at COM3
)
mdloader --port COM3 --upload read_firmware.bin --addr 0x4000 --size 0x10000
When I was done with testing, I flashed the same file back and the keyboard failed to boot. I tried going back into bootloader mode and flashing again several more times, unplugging + replugging it after the flash was done, but it stayed off. Luckily flashing a standard preset off the configurator was enough to bring it back.
Here's the stock firmware resulting from the command line above, if necessary.
When I click the "Compile and Download" button I get a 400 response for this layout.
Layout: https://www.massdrop.com/mechanical-keyboards/configurator/config/434
Hello,
I just flashed my keyboard with the applet-flash-samd51j18a.bin at https://github.com/Massdrop/mdloader/releases/tag/1.0.4 on windows 10. After doing so my keyboard is completely dark even though the flashing went fine.
Is there any way to recover it or is it bricked?
My command prompt is here: https://ibb.co/2dj1R30
Thank you.
when i input ./mdloader_mac --first --download my-file-name --restart into terminal with the correct file directory i get hit with
-bash: ./mdloader_mac: Permission Denied
I tried updating the permissions on the mdloader_mac file itself to having everyone being able to "read and write", i also went into security and privacy on my mac and ensured that the terminal had full file and disk access, also restarted my mac but i still get permission denied.
Higher keycode keys can't be utilized, HID report descriptor only goes to 101 (Keyboard Application). Not sure if this is the right place.
Related:
qmk/qmk_firmware#4597
Method I used:
https://stackoverflow.com/questions/47126939/how-to-debug-usb-hid-scancode-keycode-translation-in-linux
I use Drop keyboard configurator (https://drop.com/mechanical-keyboards/configurator) to set my keymap. However, the "menu" key does not work.
Whatever I use mdloader or qmk toolbox to flash the Drop configurator compiled firmware, the "Menu" key does not have any function, it works as "None" (Do nothing).
This key only usable on Windows platform. In macos, the key does not have function but at least it would show keycode as 0.
I have tested on both Windows and Mac platforms. If I use the QMK Configurator (https://config.qmk.fm) to compile the firmware, the "Menu" key works. But Drop Configurator will make it as None key.
The QMK configurator will make the USB hub work improperly, so I really hope the Drop Configurator could fix the issue as soon as possible.
When I switch the default layer using DF(1)
it does change the keymap, but the LEDs are still the way they are on the original layer. When I switch to some other layer (using MO
etc) the LEDs do change to that layer
mdloader_windows.exe -p COM4 -D FN_right_app_menu_massdrop_ctrl_md_configurator_1538788531_581988437.bin
Massdrop Loader 1.0
Massdrop Loader Copyright (C) 2018 Massdrop Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY
Opening port 'COM4'... Success!
Found MCU: SAMD51J18A
Error: Could not open applet file: applet-flash-samd51j18a.bin
Closing port... Success!
I followed all the steps here https://github.com/Massdrop/mdloader to flash the firmware; successfully changed the LED setting on one of my CTRL, but failed on the other one. The keyboard LED not on anymore and also cannot type. I tried several times on my first CTRL, always success.
Anyone has a clue?
I just got an ALT keyboard and am trying to flash the firmware. When I run mdloader on Windows I get an error "could not find a valid device port!".
I've been trying to get the LED customization to work, and now the keyboard just doesn't work at all. Followed the instructions to the letter, and now it just seems like it's dead, except it's definitely being detected because while DNU mode doesn't activate at all with FN+B, pressing the reset hole seems to temporarily fool(?) the mdloader into looking like it's doing what it's supposed to do. Windows makes the "Device Connected" noise twice, then makes the "Device Disconnected" noise. At no point does the keyboard work. Extremely disappointed.
Opening port 'COM3'... Success!
Found MCU: SAMD51J19A
Bootloader version: v2.20 Mar 27 2019 10:04:48 [shift]
Applet file: applet-mdflash.bin
Applet Version: 1
Writing firmware... Complete!
Booting device... Success!
Closing port... Success!
Sometimes the port is a different number (COM5, COM4), not sure if that makes any sort of difference. Everything looks like it should work to me, but it's just fucking not.
At least in the case of Windows, mdloader
is incapable of programming a CTRL unless applet-flash-samd51j18a.bin
is in the current working directory.
We've been attempting to allow for QMK to use the :flash
target to invoke mdloader, but given that it's executed from the qmk_firmware
directory, applet-flash-samd51j18a.bin
doesn't exist.
However, if executing mdloader
from a directory that contains applet-flash-samd51j18a.bin
, this works. Having applet-flash-samd51j18a.bin
present next to mdloader
does not result in a successful flash.
Perhaps searching the executable directory for a copy of applet-flash-samd51j18a.bin
might be in order?
I encountered the following attempting to use the pre-built binary:
$ ./mdloader --port /dev/ttyACM0 --download massdrop_ctrl_sdoradus.bin --restart
Massdrop Loader 1.03
Massdrop Loader Copyright (C) 2018 Massdrop Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY
Opening port '/dev/ttyACM0'... Success!
Error: Could not communicate with device! (Correct port?)
Building the tool from source fixed the issue.
The provided binary is dynamically linked and perhaps a shared library mismatch is causing the issue?
If you cannot reproduce this feel free to close this issue as I don't plan on investigating further.
Line 38 in fcef3c4
Further documentation can be found here to ultimately future proof this problem: http://ww1.microchip.com/downloads/en/DeviceDoc/SAM-D5x-E5x-Family-Silicon-Errata-DS80000748K.pdf
mcu_t mcus[] = {
//Name, Chip ID Chip ID, Program Memory, Data Memory, Program Addr, Data Addr
// Address (FLASH_SIZE) (HSRAM_SIZE) (FLASH_ADDR) (HSRAM_ADDR)
{ "SAMD51J18A-0", 0x41002018, 0x60060006, 0x40000, 0x20000, 0x00000000, 0x20000000},
{ "SAMD51J19A-0", 0x41002018, 0x60060005, 0x40000, 0x20000, 0x00000000, 0x20000000},
{ "SAMD51J18A-3", 0x41002018, 0x60060306, 0x40000, 0x20000, 0x00000000, 0x20000000},
{ "SAMD51J19A-3", 0x41002018, 0x60060305, 0x40000, 0x20000, 0x00000000, 0x20000000},
};
"How to Configure your ALT Keyboard" [1] last updated 2018-10-19 states:
We are working with Jack and the other QMK contributors to get the loader application integrated into the next version of QMK Toolbox to simplify this loading process.
It seems flashing with QMK Toolbox and qmk
CLI [2] are still unsupported. When I run qmk compile
I see the following warning message.
This MCU support package has a lack of support from the upstream provider (Massdrop).
There are currently questions about valid licensing, and at this stage it's likely
their boards and supporting code will be removed from QMK in the near future. Please
contact Massdrop for support, and encourage them to align their future board design
choices to gain proper license compatibility with QMK.
Related Github issues
1: https://drop.com/talk/10343/how-to-configure-your-alt-keyboard
2: https://drop.com/talk/10343/how-to-configure-your-alt-keyboard
The dialout
group doesn't exist on Arch Linux; adding the group and adding my user to that group does't have any effect.
What can I do to use this without having to use root/sudo?
Under the terms of the GPLv3 I would like to request the source code used to generate the applet-flash-samd51j18a.bin object file.
This might just be an ID10T problem, but I cannot get this to work.
ls -la
total 184
drwxr-xr-x 5 Brenntron staff 160 Nov 27 09:33 .
drwxr-xr-x+ 115 Brenntron staff 3680 Nov 27 09:35 ..
-rw-r--r--@ 1 Brenntron staff 1504 Nov 27 09:30 applet-flash-samd51ji8a.bin
-rw-r--r--@ 1 Brenntron staff 41064 Nov 27 08:31 massdrop_alt_md_configurator.bin
-rwxr--r--@ 1 Brenntron staff 41956 Nov 27 08:40 mdloader_mac.dms
./mdloader_mac.dms --first --download massdrop_alt_md_configurator_1543329063_180086723.bin --restart
Massdrop Loader 1.03
Massdrop Loader Copyright (C) 2018 Massdrop Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY
Scanning for device for 60 seconds
.
Device port: /dev/cu.usbmodem142120 (SAMD51J18A)
Opening port '/dev/cu.usbmodem142120'... Success!
Found MCU: SAMD51J18A
Bootloader version: v2.18Sep 4 2018 16:48:28
Applet file: applet-flash-samd51j18a.bin
Error: Could not open applet file: applet-flash-samd51j18a.bin
Closing port... Success!
The applet file cannot be run, and I cannot tell if it's a permissions issue or something related to the operating system. Or just unfamiliarity with applet files.
Hey all,
I've been reading through the issues threads here as I try to set up my new Drop Alt low profile keyboard, and have read about some of the issues with newer releases having a different Chip ID than what mdloader is expecting. My keyboard is from the newest batch (shipped out August 18th) and I suspect I may be having a similar issue.
I've followed all the instructions I've seen listed throughout this repo and made sure I was downloading the most recent version of everything, but no luck. From what I understand the newest mdloader I downloaded from here was updated in July to deal with new chip IDs but could have that ID changed again?
Any help would be appreciated!
I'm fresh new to all of this. Currently just trying to load up custom LEDs. When I try to run the mdloader_windows.exe it runs for a split second and then nothing happens. Not quite sure what's going on here or if there's any issue.
While trying to change the leds of my alt drop iot gives me this error and i would like some help on how to fix it mdloader_winows.exe is not recognized as an internal or external command,
operable program or batch file.
Same as everyone else who probably just gave up and walked away.
C:\Users\shatt\Downloads\New folder>mdloader_windows.exe --first --download massdrop_shift_preset_shift__default.bin
Massdrop Loader 1.05
Massdrop Loader Copyright (C) 2018-2020 Massdrop Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY
Scanning for device for 60 seconds
.
Device port: COM3 (SAMD51J18A)
Opening port 'COM3'... Success!
Found MCU: SAMD51J18A
Bootloader version: v2.20 Mar 27 2019 10:04:48 [shift]
Applet file: applet-mdflash.bin
Error: Could not send applet!
Closing port... Success!
Directory of C:\Users\shatt\Downloads\New folder
06/05/2021 08:59 PM <DIR> .
06/05/2021 08:59 PM <DIR> ..
06/05/2021 08:59 PM 1,504 applet-mdflash.bin
06/05/2021 08:49 PM 55,520 massdrop_shift_preset_shift__default.bin
06/05/2021 08:46 PM 147,410 mdloader_windows.exe
Things that will be asked:
Either the hardware is shite or mdloader has a specific issue with Shift keyboards. Any guidance would be highly appreciated since the only reason I am even attempting this is because the keyboard is now repeating keys which makes it useless.
edit:
Just noticed the title, was 100% unintentional.
Here's the verbose output for what its worth:
Massdrop Loader 1.05
Massdrop Loader Copyright (C) 2018-2020 Massdrop Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY
Scanning for device for 60 seconds
.Opening port 'COM1'... Success!
Configuring port...
Get config... Success!
Set config... Success!
Set timeouts... Success!
Setting normal mode... Error reading 2 bytes! [0][0000](0)
Closing port... Success!
Opening port 'COM2'... Failed!
Opening port 'COM3'... Success!
Configuring port...
Get config... Success!
Set config... Success!
Set timeouts... Success!
Setting normal mode... Success!
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Device port: COM3 (SAMD51J18A)
Closing port... Success!
Opening port 'COM3'... Success!
Configuring port...
Get config... Success!
Set config... Success!
Set timeouts... Success!
Setting normal mode... Success!
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Write: [w41002018,#]
Found supported device ID: 60060306
Found MCU: SAMD51J18A
Write: [V#]
Bootloader version: v2.20 Mar 27 2019 10:04:48 [shift]
Device ID: 60060006
Applet file: applet-mdflash.bin
Applet load address: 20018000
Applet mail address: 20018040
Applet size: 1504
Write: [S20018000,000001f4#]
Write: 500 bytes
Write: [S200181f4,000001f4#]
Write: 500 bytes
Write: [S200183e8,000001f4#]
Write: 500 bytes
Error writing port [0][500](31)
Error: Could not send applet!
Closing port... Success!
Neither the Windows or Linux release shows any board plugged in when I do --list
. I have tried it with the cable plugged into either port. I ran it as both a normal user and root / admin.
Specifically, so this PR can be supported, so we can have persistent settings on the ATSAM boards.
Brand new keyboard, right out of the box, and I just went to program it. Seems every time I go to either write firmware to it or I go to change the configuration, I get this issue. The keyboard works perfectly, and my computer picks it up every time. This makes me think that it's a Chip ID issue, as I can't see any other reason why.
The new ALT High Profile batch's Chip ID changed to 60060305.
Attempting to flash with mdloader 1.04 raises "Error: Could not find a valid device port!" problem.
Modify mdloader version 1.03 (!) with method mention in issue #24 should solve the problem.
On my Drop ALT, I have loaded firmware from the Configurator. The 'Menu' key, or KC_APP
, is simply not working. I have tested a different keyboard, not running Drop firmware, and the Menu key functions perfectly. This is on Windows 10 Pro 2004.
Hello, I just got my Massdrop CTRL keyboard in today. I followed the steps and flashed custom LED colors twice. The third time the keyboard was not recognized and I am receiving this error. I read through #24 and I couldn't find a fix that works for me.
-----------------------------
Opening port 'COM1'... Failed!
Opening port 'COM2'... Failed!
Opening port 'COM3'... Success!
Configuring port...
Get config... Success!
Set config... Success!
Set timeouts... Success!
Setting normal mode... Error writing 2 bytes! [0](0)
Closing port... Success!```
I'm unable to access my Drop CTRL keyboard with mdloader in Linux on Chrome OS, which [hostnamectl] reports as [Debian GNU/Linux 10]. They keyboard itself works fine when connected; I just can't manage it via mdloader.
Here's what I've tried so far:
Since I can't even see the device, is it possible that I'm missing a driver or some library? It would make my configuration workflow so much easier if I could flash it from Linux on Chrome OS. Thanks for any assistance or ideas!
Christophers-MacBook-Pro:Downloads chris$ ls
massdrop_alt_md_configurator_1542955916_1242149659.bin
mdloader_mac.dms
Christophers-MacBook-Pro:Downloads chris$ chmod u+x mdloader_mac.dms
Christophers-MacBook-Pro:Downloads chris$ mdloader_mac.dms --first --download massdrop_alt_md_configurator_1542955916_1242149659.bin --restart
-bash: mdloader_mac.dms: command not found
When executing mdloader with the "--first" command, it says that "first" is an unknown option. I downloaded the newest version of mdloader, reinstalled all drivers, have mdloader in the same folder with the applet file... nothing is working.
Connect to macbook USB C --to-- USB C keyboard does not get detected or even turn on.
not sure what the solution here could be.
does it only support USB C to USB A?
I suspect I have an issue with my keyboard not mdloader but figure doesn't hurt to see if anyone has any idea. mdloader cannot seem to talk to my drop CTRL. I've used it to flash my ALT without issue. Which makes me wonder if the two devices need different drivers or something? I posted on drops discussions as well but I'm trying all places i can think of at this point.
When i try and flash using "mdloader_windows.exe --first --download massdrop_ctrl_thel1979.bin --restart" MDloader does the search for device for 60 seconds then times out with "Error: Could not find a valid device port!" if i try and force it to port 5 which is what i'm seeing it on as windows i get "Opening port '5'... Failed! (The system cannot find the file specified.)"
using the --list switch with the keyboard in RDU mode it returns "No devices found!"
if i use --verbose i see:
.Opening port 'COM1'... Success!
Configuring port...
Get config... Success!
Set config... Success!
Set timeouts... Success!
Setting normal mode... Error reading 2 bytes! [0]0000
Closing port... Success!
Opening port 'COM2'... Failed!
Opening port 'COM3'... Failed!
Opening port 'COM4'... Failed!
Opening port 'COM5'... Success!
Configuring port...
Get config... Success!
Set config... Success!
Set timeouts... Success!
Setting normal mode... Success!
Write: [w41002018,#]
Closing port... Success!
Opening port 'COM6'... Failed!
Opening port 'COM7'... Failed!
Opening port 'COM8'... Failed!
Opening port 'COM9'... Failed!
and so on through to COM255
If anyone has any advice I'd love to try it out.
I threw all necessary files (applet.bin, mdloader_linux, and custom fw) into the same directory and used "chmod u+x mdloader_linux" to make it executable, but when I run mdloader_linux in terminal all I get is the output "command not found". It doesn't matter which arguments or flags go in, it just doesn't find mdloader_linux at all. Working directory is definitely the mdloader directory, so I'm not sure what's up. I've tried sudo/root, and that doesn't work either. I downloaded the source so I could 'make' it, but that also failed.
fyi - I'm on a late 2011 mbp with no dual-boot.
Upon going to install my custom firmware, I run into this issue:
Massdrop Loader 1.04
Massdrop Loader Copyright (C) 2018-2020 Massdrop Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY
Scanning for device for 60 seconds
..........
Device port: COM7 (SAMD51J19A)
Opening port 'COM7'... Success!
Found MCU: SAMD51J19A
Bootloader version: v2.18Sep 4 2018 16:48:28
Applet file: applet-flash-samd51j19a.bin
Error: Could not open applet file: applet-flash-samd51j19a.bin
Closing port... Success!
I have noticed that the download links found here do not contain applet-flash-samd51j19a.bin, but does contain applet-flash-samd51j18a.bin.
I do not want to accidentally brick my keyboard by just changing the name of the file. Can you either confirm that it is just a simple name change or properly upload the new file?
I accidentally have flashed my carina with a firmware that doesn't have Fn
key, and this mistake effectively prohibits me from flashing my carina with a correct firmware, since I cannot hold the Fn
+ b
when I see the following message.
Scanning for device for 60 seconds
.....
I tried -p COM1
instead of -f
, since other ports (all 254) gave me Opening port 'COM2'... Failed!
message when I tried -f -v
, but this command doesn't work either.
Massdrop Loader 1.05
Massdrop Loader Copyright (C) 2018-2020 Massdrop Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY
Opening port 'COM1'... Success!
Configuring port...
Get config... Success!
Set config... Success!
Set timeouts... Success!
Setting normal mode... Error reading 2 bytes! [0][0000](0)
Error: Could not communicate with device! (Correct port?)
Closing port... Success!
And this is what I got from -l
Massdrop Loader 1.05
Massdrop Loader Copyright (C) 2018-2020 Massdrop Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY
Bootloader port listing
-----------------------------
No devices found!
Is there other way to flash the device? or send Fn
when I need to hold Fn
+ b
? If there is none, I think mdloader needs either some configurability (instead of only accepting Fn
+ b
) or other way to identify and select the keyboard to flash.
Describe the problem
Hi since i somehow misread the instruction on how to flash the firmware, i accidently used applet-mdflash.bin to flash my keyboard which broke it.
The instructions uses 2 bin files, the firmware and applet-mdflash.bin
mdloader_linux --first --download applet-mdflash.bin --restart
Proposed solutions
a: Have an internal blocklist to not use this specific filename
b: Check that firmware file does not have the same hash of the applet-mdflash.bin file
Seeing this issue on the issues page, however I am using the latest 1.0.4 binaries on Windows. When in bootloader mode the keyboard is not recognized when the program runs, neither in QMK toolbox or the mdloader. QMK complains about IDs. I am assuming this is due to a similar issue posted at #24. Any help would be appreciated!
mdloader_mac --first --download FILE_NAME --restart
command was not working on my Mac. Instead I ran ./mdloader_mac --first --download FILE_NAME --restart
and that started the command. Just putting this here in case anyone else runs into this issue.
mdloader has trouble loading the SHIFT. I would appreciate a release explicitly supporting it.
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.