Code Monkey home page Code Monkey logo

rtcx's Introduction

RTCx

Arduino library to support DS1307 and similar I2C real-time clocks. The library can autoprobe to find the actual hardware based on I2C address.

The library also provides equivalents to the Unix mktime() and gmtime_r() (a reentrant version of gmtime()). By default the Unix epoch of 1970-01-01 is used. An alternative epoch can be defined at compile-time; it must differ from 1970 by an exact multiple of four years.

Supported devices

  • DS1307 (also DS1337, DS1338)
  • MCP7941x (MCP79410, MCP79411, MCP79412)
  • PCF85263(A)

License

Released under the GNU Lesser General Public License, version 2.1. See LICENSE.txt for details.

Examples

RTCx_example

Demonstrate the use of autoprobe(), getDevice(), getAddress() to identify the first RTC found. Configure the device as appropriate using enableBatteryBackup() and startClock(). Enable square-wave output with setSQW().

Credits

Thanks to Ian Chilton for mcp7941x_arduino which was the starting point for the MCP7941x implementation.

rtcx's People

Contributors

per1234 avatar stevemarple avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

rtcx's Issues

Bitmask for wday in RTCx.cpp

Hi,

Thank you for the library.

I'm just getting into programming and have spent a while trying to work out why I was getting strange results. I think it looks like the following line in RTCx.cpp:

tm->tm_wday = (Wire.read() & 0x03) - 1; // Clock uses [1..7]

should be:

tm->tm_wday = (Wire.read() & 0x07) - 1; // Clock uses [1..7]

As the day field is three bits long and not two. If I am wrong, please accept my apologies.

mktime() then ignores the tm_wday read and redefines it. I'm not sure if this was a workaround for the incorrect value read or for some other reason. If running mktime() after readClock() is mandatory/advised, then could/should a call be made to mktime() from within readClock()?

Many thanks,

Nicholas.

Error in startClock method

In this method, the intention is to only write back to the RTCC if the register value has changed or it wasn't read from the device in the first place (i.e. a bcdsecs value was passed in):

// Write back the data if it is different to the contents of the
// register.  Always write back if the data wasn't fetched with
// readData as the contents of the stop bit are unknown.
if (s != s2 || bcdSec < 0)
	writeData(reg, s2);

This code looks like it will write back IF the register has changed OR it was read from the device. So basically, every time. I think it should be:
// Write back the data if it is different to the contents of the
// register. Always write back if the data wasn't fetched with
// readData as the contents of the stop bit are unknown.
if (s != s2 || bcdSec >= 0)
writeData(reg, s2);

Configuration of RTCx on Nano 33 BLE

Trying to run the RTCx example sketch on an Arduino Nano 33 BLE and I get the following error.

...\Documents\Arduino\libraries\RTCx\examples\RTCx_example\RTCx_example.ino: In function 'void setup()':

RTCx_example:37:6: error: 'F_CPU' was not declared in this scope

if (F_CPU > 8000000UL)
...
Are there some suggested configurations for using the Nano 33 BLE boards?

esp8266

Nice library! To build on the esp8266 I change

//#include <avr/pgmspace.h> to

#if ARDUINO >= 100
#include <Arduino.h>
#else
#include <WProgram.h>
#endif

Best Regards,
Alexandre Bensi

RTCx in Arduino Zero (SAMD21) Architecture

I am trying to compile the Example program using a standar Arduino Zero Board. It is actually an Arduino M0+ Pro board from Arduino.org, but this doesn´t make a difference in relation to the wire library.

I am actually very much interested in the RTCx project because I am using a Microchip RTC MCP79410, and this library is by default integrated in the IDE becuase its quality.

I am using the arm-none-eabi-g++ (Atmel ARM M0+ Architecture), and the Wire library inside the SAMD architecture.

This is the compiler error output:

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware "C:\Program Files (x86)\Arduino\hardware" -hardware "C:\Users\quino\AppData\Local\Arduino15\packages" -tools "C:\Program Files (x86)\Arduino\tools-builder" -tools "C:\Program Files (x86)\Arduino\hardware\tools\avr" -tools "C:\Users\quino\AppData\Local\Arduino15\packages" -built-in-libraries "C:\Program Files (x86)\Arduino\libraries" -libraries "C:\Users\quino\Documents\Arduino\libraries" -fqbn=arduino:samd:arduino_zero_native -ide-version=10607 -build-path "C:\Users\quino\AppData\Local\Temp\builde26664845a016231887e0fcad47b44d8.tmp" -warnings=default -prefs=build.warn_data_percentage=75 -verbose "C:\Users\quino\Documents\Arduino\libraries\RTCx\examples\RTCx_example\RTCx_example.ino"
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware "C:\Program Files (x86)\Arduino\hardware" -hardware "C:\Users\quino\AppData\Local\Arduino15\packages" -tools "C:\Program Files (x86)\Arduino\tools-builder" -tools "C:\Program Files (x86)\Arduino\hardware\tools\avr" -tools "C:\Users\quino\AppData\Local\Arduino15\packages" -built-in-libraries "C:\Program Files (x86)\Arduino\libraries" -libraries "C:\Users\quino\Documents\Arduino\libraries" -fqbn=arduino:samd:arduino_zero_native -ide-version=10607 -build-path "C:\Users\quino\AppData\Local\Temp\builde26664845a016231887e0fcad47b44d8.tmp" -warnings=default -prefs=build.warn_data_percentage=75 -verbose "C:\Users\quino\Documents\Arduino\libraries\RTCx\examples\RTCx_example\RTCx_example.ino"
Warning: platform.txt from core 'Arduino SAMD (32-bits ARM Cortex-M0+) Boards' contains deprecated recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/{archive_file}" "{object_file}", automatically converted to recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}". Consider upgrading this core.
"C:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1/bin/arm-none-eabi-g++"  -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions  -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10607 -DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD  -D__SAMD21G18A__ -DUSB_VID=0x2341 -DUSB_PID=0x804d -DUSBCON '-DUSB_MANUFACTURER="Arduino LLC"' '-DUSB_PRODUCT="Arduino Zero"'     "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/CMSIS/Include/" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/Device/ATMEL/"  "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\cores\arduino" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\variants\arduino_zero" "C:\Users\quino\AppData\Local\Temp\builde26664845a016231887e0fcad47b44d8.tmp\sketch\RTCx_example.ino.cpp" -o "nul"
"C:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1/bin/arm-none-eabi-g++"  -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions  -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10607 -DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD  -D__SAMD21G18A__ -DUSB_VID=0x2341 -DUSB_PID=0x804d -DUSBCON '-DUSB_MANUFACTURER="Arduino LLC"' '-DUSB_PRODUCT="Arduino Zero"'     "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/CMSIS/Include/" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/Device/ATMEL/"  "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\cores\arduino" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\variants\arduino_zero" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\libraries\Wire" "C:\Users\quino\AppData\Local\Temp\builde26664845a016231887e0fcad47b44d8.tmp\sketch\RTCx_example.ino.cpp" -o "nul"
"C:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1/bin/arm-none-eabi-g++"  -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions  -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10607 -DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD  -D__SAMD21G18A__ -DUSB_VID=0x2341 -DUSB_PID=0x804d -DUSBCON '-DUSB_MANUFACTURER="Arduino LLC"' '-DUSB_PRODUCT="Arduino Zero"'     "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/CMSIS/Include/" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/Device/ATMEL/"  "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\cores\arduino" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\variants\arduino_zero" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\libraries\Wire" "-IC:\Users\quino\Documents\Arduino\libraries\RTCx\src" "C:\Users\quino\AppData\Local\Temp\builde26664845a016231887e0fcad47b44d8.tmp\sketch\RTCx_example.ino.cpp" -o "nul"
"C:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1/bin/arm-none-eabi-g++"  -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions  -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10607 -DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD  -D__SAMD21G18A__ -DUSB_VID=0x2341 -DUSB_PID=0x804d -DUSBCON '-DUSB_MANUFACTURER="Arduino LLC"' '-DUSB_PRODUCT="Arduino Zero"'     "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/CMSIS/Include/" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/Device/ATMEL/"  "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\cores\arduino" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\variants\arduino_zero" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\libraries\Wire" "-IC:\Users\quino\Documents\Arduino\libraries\RTCx\src" "C:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\libraries\Wire\Wire.cpp" -o "nul"
"C:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1/bin/arm-none-eabi-g++"  -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions  -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10607 -DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD  -D__SAMD21G18A__ -DUSB_VID=0x2341 -DUSB_PID=0x804d -DUSBCON '-DUSB_MANUFACTURER="Arduino LLC"' '-DUSB_PRODUCT="Arduino Zero"'     "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/CMSIS/Include/" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/Device/ATMEL/"  "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\cores\arduino" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\variants\arduino_zero" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\libraries\Wire" "-IC:\Users\quino\Documents\Arduino\libraries\RTCx\src" "C:\Users\quino\Documents\Arduino\libraries\RTCx\src\RTCx.cpp" -o "nul"
"C:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1/bin/arm-none-eabi-g++"  -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions  -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10607 -DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD  -D__SAMD21G18A__ -DUSB_VID=0x2341 -DUSB_PID=0x804d -DUSBCON '-DUSB_MANUFACTURER="Arduino LLC"' '-DUSB_PRODUCT="Arduino Zero"'     "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/CMSIS/Include/" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/Device/ATMEL/"  "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\cores\arduino" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\variants\arduino_zero" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\libraries\Wire" "-IC:\Users\quino\Documents\Arduino\libraries\RTCx\src" "C:\Users\quino\AppData\Local\Temp\builde26664845a016231887e0fcad47b44d8.tmp\sketch\RTCx_example.ino.cpp" -o "nul"
"C:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1/bin/arm-none-eabi-g++"  -mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions  -w -x c++ -E -CC -DF_CPU=48000000L -DARDUINO=10607 -DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD  -D__SAMD21G18A__ -DUSB_VID=0x2341 -DUSB_PID=0x804d -DUSBCON '-DUSB_MANUFACTURER="Arduino LLC"' '-DUSB_PRODUCT="Arduino Zero"'     "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/CMSIS/Include/" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/Device/ATMEL/"  "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\cores\arduino" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\variants\arduino_zero" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\libraries\Wire" "-IC:\Users\quino\Documents\Arduino\libraries\RTCx\src" "C:\Users\quino\AppData\Local\Temp\builde26664845a016231887e0fcad47b44d8.tmp\sketch\RTCx_example.ino.cpp" -o "C:\Users\quino\AppData\Local\Temp\builde26664845a016231887e0fcad47b44d8.tmp\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino5/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\quino\AppData\Local\Temp\builde26664845a016231887e0fcad47b44d8.tmp\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1/bin/arm-none-eabi-g++" -mcpu=cortex-m0plus -mthumb -c -g -Os  -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -MMD -DF_CPU=48000000L -DARDUINO=10607 -DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD  -D__SAMD21G18A__ -DUSB_VID=0x2341 -DUSB_PID=0x804d -DUSBCON '-DUSB_MANUFACTURER="Arduino LLC"' '-DUSB_PRODUCT="Arduino Zero"' "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/CMSIS/Include/" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/Device/ATMEL/" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\cores\arduino" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\variants\arduino_zero" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\libraries\Wire" "-IC:\Users\quino\Documents\Arduino\libraries\RTCx\src" "C:\Users\quino\AppData\Local\Temp\builde26664845a016231887e0fcad47b44d8.tmp\sketch\RTCx_example.ino.cpp" -o "C:\Users\quino\AppData\Local\Temp\builde26664845a016231887e0fcad47b44d8.tmp\sketch\RTCx_example.ino.cpp.o"
Using previously compiled file: C:\Users\quino\AppData\Local\Temp\builde26664845a016231887e0fcad47b44d8.tmp\libraries\Wire\Wire.cpp.o
"C:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1/bin/arm-none-eabi-g++" -mcpu=cortex-m0plus -mthumb -c -g -Os  -std=gnu++11 -ffunction-sections -fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -MMD -DF_CPU=48000000L -DARDUINO=10607 -DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD  -D__SAMD21G18A__ -DUSB_VID=0x2341 -DUSB_PID=0x804d -DUSBCON '-DUSB_MANUFACTURER="Arduino LLC"' '-DUSB_PRODUCT="Arduino Zero"' "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/CMSIS/Include/" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\tools\CMSIS\4.0.0-atmel/Device/ATMEL/" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\cores\arduino" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\variants\arduino_zero" "-IC:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\libraries\Wire" "-IC:\Users\quino\Documents\Arduino\libraries\RTCx\src" "C:\Users\quino\Documents\Arduino\libraries\RTCx\src\RTCx.cpp" -o "C:\Users\quino\AppData\Local\Temp\builde26664845a016231887e0fcad47b44d8.tmp\libraries\RTCx\RTCx.cpp.o"
C:\Users\quino\Documents\Arduino\libraries\RTCx\src\RTCx.cpp: In member function 'bool RTCx::autoprobe(uint8_t*, uint8_t)':

C:\Users\quino\Documents\Arduino\libraries\RTCx\src\RTCx.cpp:206:17: error: call of overloaded 'write(int)' is ambiguous

     Wire.write(0);

                 ^

C:\Users\quino\Documents\Arduino\libraries\RTCx\src\RTCx.cpp:206:17: note: candidates are:

In file included from C:\Users\quino\Documents\Arduino\libraries\RTCx\src\RTCx.cpp:2:0:

C:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\libraries\Wire/Wire.h:50:12: note: virtual size_t TwoWire::write(uint8_t)

     size_t write(uint8_t data);

            ^

In file included from C:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\cores\arduino/Stream.h:26:0,

                 from C:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\libraries\Wire/Wire.h:23,

                 from C:\Users\quino\Documents\Arduino\libraries\RTCx\src\RTCx.cpp:2:

C:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\cores\arduino/Print.h:48:12: note: size_t Print::write(const char*)

     size_t write(const char *str) {

            ^

Using library Wire at version 1.0 in folder: C:\Users\quino\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.2\libraries\Wire 
Using library RTCx at version 1.0.1 in folder: C:\Users\quino\Documents\Arduino\libraries\RTCx 
exit status 1
Error compiling.

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.