Coder Social home page Coder Social logo

simon-jouet / marlin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from marlinfirmware/marlin

22.0 22.0 3.0 131.43 MB

Optimized firmware for RepRap 3D printers based on the Arduino platform.

Home Page: http://www.marlinfw.org/

License: GNU General Public License v3.0

C++ 66.15% C 31.35% Makefile 0.27% Shell 0.68% CMake 0.04% OpenSCAD 0.05% Python 0.68% G-code 0.02% HTML 0.29% CSS 0.04% JavaScript 0.38% Assembly 0.04% GDB 0.01% NASL 0.01% Dockerfile 0.01%

marlin's People

Contributors

alexborro avatar anhardt avatar bgort avatar bkubicek avatar bob-the-kuhn avatar boelle avatar croadfeldt avatar daid avatar ejtagle avatar ellensp avatar erikzalm avatar gmagician avatar insanityautomation avatar jbrazio avatar ludy87 avatar marcio-ao avatar marciot avatar nothinman avatar p3p avatar rhapsodyv avatar robbycandra avatar roxy-3d avatar sjasonsmith avatar tcm0116 avatar teemuatlut avatar thinkyhead avatar thisiskeithb avatar tpruvot avatar wackerbarth avatar wurstnase avatar

Stargazers

 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

marlin's Issues

Errors in platformsIO and Arduino IDE

I am building this project for a controller I have designed myself with an espressif esp32-s2. I'm using both VSCode + PlatformIO and the Arduino IDE, and on both I have compile errors:

Marlin/src/HAL/ESP32/timers.cpp: In function 'void timer_isr(void*)':
Marlin/src/HAL/ESP32/timers.cpp:79:45: error: 'struct timg_dev_t' has no member named 'int_st'
uint32_t intr_status = TG[timer.group]->int_st.val;
^~~~~~
Marlin/src/HAL/ESP32/timers.cpp:94:40: error: 'struct timg_dev_t' has no member named 'int_clr'
case TIMER_0: TG[timer.group]->int_clr.t0 = 1; break;
^~~~~~~
Marlin/src/HAL/ESP32/timers.cpp:95:40: error: 'struct timg_dev_t' has no member named 'int_clr'
case TIMER_1: TG[timer.group]->int_clr.t1 = 1; break;
^~~~~~~
Marlin/src/HAL/ESP32/timers.cpp:105:47: error: 'volatile union timg_txconfig_reg_t' has no member named 'alarm_en'
TG[timer.group]->hw_timer[timer.idx].config.alarm_en = TIMER_ALARM_EN;
^~~~~~~~
Marlin/src/HAL/ESP32/timers.cpp: In function 'bool HAL_timer_interrupt_enabled(uint8_t)':
Marlin/src/HAL/ESP32/timers.cpp:202:27: error: 'struct timg_dev_t' has no member named 'int_ena'
return TG[timer.group]->int_ena.val | BIT(timer_num);
^~~~~~~
*** [.pio\build\esp32controllerr3\src\src\HAL\ESP32\timers.cpp.o] Error 1

Start from beginning

I have some question regarding this cool project

  1. this branch still actual? or everything that needed for running esp32 as controller already exists in official marlin branch?
  2. I try out official Marlin branch, it compiles without a problem and I also able flash this binary to dev board but big question if I upload code to some esp32 dev board like "DOIT Esp32 DevKit v1" project will run without a connection to additional hardware?
    for my test, it's just crashed and I try to understand this because some hardware must be connected and if it's missing I must expect that it crashes?
    I like the idea to use esp32 as the controller board

if it's expected that devices won't' boot without additional hardware what is the minimum required hardware?
I plan to create some minimal with SPI drivers
And want start from some minimal hardware connected to this board

TMC2209

@felixstorm @vivian-ng

(Decided to post here instead of the main repo because I assume that's an issue only for ESP32 users.)

Hey guys, hopefully you get a notification from those mentions :), with what has been happening I finally took some time this weekend top bump my Marlin version and trying to do some minor updates to my printer.

I got TMC2209 a while back (fystec v2.1) and i'm running into some issues with the configuration, so I was hoping one of you had a try. Setting up a single TMC2209 works perfectly fine, the stepping works okay and doing a M122 returns the status of the driver as expected.

The problem is when I start enabling more that one TMC2209 for the same UART, if I enable both X and Y, give X the slave address 0 and y the slave address 1 then the stepping stops working. The driver is enabled (the stepper is on hold), M122 returns the status of all the drivers but stepping just doesn't do anything.

If I comment out the driver type from tmc2209 for either X or Y (so only a driver is tmc2209) then the one configured for tmc2209 is working perfectly, just can't have more than one TMC2209 at a time.

Do you have any clue what could be going on before I start digging too deep into this?

Here is the diff of my branch if that helps
esp32.txt

Print over serial crash

Simon you raised that print over serial crashed

I did not built a full system yet just your board and ramps connected by USB to my computer and using repetier host

I have removee temperature GCODE as I do not have any heater and launch a cube 20mmX20mmX20mm
It sent commands during more than 16 min for a total of 4450 commands and still responding

09:31:30.679 : Printjob finished at 28/12/2017 09:31
09:31:30.679 : Printing Time: 16m:32s
09:31:30.679 : Lines Send: 4260
09:31:30.690 : N4450 M84*42

So like this I cannot reproduce crash

Per my experience ESP is sensitive to power supply could it be the root cause

Do you board is able same as me at least ? not powered using external external power supply and not using motors / heaters

I include my test file

cube.zip

WDT Reset

Just reading temperature using M105 and I get

rst:0x7 (TG0WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:956
load:0x40078000,len:0
load:0x40078000,len:13076
entry 0x40078ad0
start
echo: External Reset
 Brown out Reset
 Watchdog Reset

I am not sure what trigger that as previous test on USB this did not happen - but I was was not reading temperature neither

Temperature not accurate

ESP32/RAMPS read temperature = -15 (not correct)
but same sensor read 24 (correct) on RE-ARM/RAMPS

ok T:-15.00 /0.00 B:-15.00 /0.00 @:0 B@:0

ESP32 WiFi integration

when including <WiFi.h> there is a conflict with min / max functions which are macro in ESP32

#ifndef _GLIBCXX_VECTOR
// arduino is not compatible with std::vector
#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))
#endif

#define _min(a,b) ((a)<(b)?(a):(b))
#define _max(a,b) ((a)>(b)?(a):(b))

Using _min and _max seems solving the issue

I2C Busy timeout

echo:busy: processing
[E][esp32-hal-i2c.c:313] i2cRead(): Timeout! Addr: 20, index 1
[E][esp32-hal-i2c.c:161] i2cWrite(): Busy Timeout! Addr: 20
[E][esp32-hal-i2c.c:161] i2cWrite(): Busy Timeout! Addr: 20
[E][esp32-hal-i2c.c:161] i2cWrite(): Busy Timeout! Addr: 20
[E][esp32-hal-i2c.c:161] i2cWrite(): Busy Timeout! Addr: 20
[E][esp32-hal-i2c.c:161] i2cWrite(): Busy Timeout! Addr: 20

Planner.cpp MarlinFirmware#886

if (block->steps[X_AXIS]) enable_X();
if (block->steps[Y_AXIS]) enable_Y();

The steppers are enabled/disabled for every block which is causing problems with the i2c gpio expander

ESP32S2 compiling issues

I have tried to compile the esp32s2 branch, but getting the following errors::

C:\Marlin\Marlin-esp32s2\Marlin\src\HAL\ESP32\timers.cpp: In function 'void timer_isr(void*)':
C:\Marlin\Marlin-esp32s2\Marlin\src\HAL\ESP32\timers.cpp:79:45: error: 'struct timg_dev_t' has no member named 'int_st'
     uint32_t intr_status = TG[timer.group]->int_st.val;
                                             ^~~~~~
C:\Marlin\Marlin-esp32s2\Marlin\src\HAL\ESP32\timers.cpp:94:40: error: 'struct timg_dev_t' has no member named 'int_clr'
         case TIMER_0: TG[timer.group]->int_clr.t0 = 1; break;
                                        ^~~~~~~
C:\Marlin\Marlin-esp32s2\Marlin\src\HAL\ESP32\timers.cpp:95:40: error: 'struct timg_dev_t' has no member named 'int_clr'
         case TIMER_1: TG[timer.group]->int_clr.t1 = 1; break;
                                        ^~~~~~~
C:\Marlin\Marlin-esp32s2\Marlin\src\HAL\ESP32\timers.cpp:105:47: error: 'volatile union timg_txconfig_reg_t' has no member named 'alarm_en'
   TG[timer.group]->hw_timer[timer.idx].config.alarm_en = TIMER_ALARM_EN;
                                               ^~~~~~~~
C:\Marlin\Marlin-esp32s2\Marlin\src\HAL\ESP32\timers.cpp: In function 'bool HAL_timer_interrupt_enabled(uint8_t)':
C:\Marlin\Marlin-esp32s2\Marlin\src\HAL\ESP32\timers.cpp:202:27: error: 'struct timg_dev_t' has no member named 'int_ena'
   return TG[timer.group]->int_ena.val | BIT(timer_num);
                           ^~~~~~~
Multiple libraries were found for "WiFi.h"
 Used: C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.5\libraries\WiFi
 Not used: C:\Program Files (x86)\Arduino\libraries\WiFi
exit status 1
Error compiling for board ESP32S2 Dev Module.

Also, any intention to port Marlin to esp32s3 ?

Test ESP32

Description

Test ESP32 Marlin code

Steps to Reproduce

Every print i try my https://wiki.wemos.cc/products:lolin32:lolin32 reboots

  1. [First Step]
  2. [Second Step]
  3. [and so on...]

Expected behavior: [What you expect to happen]

Actual behavior: [What actually happens]

Additional Information

  • Include a ZIP file containing your Configuration.h and Configuration_adv.h files.
  • Provide pictures or links to videos that clearly demonstrate the issue.
  • See How Can I Contribute for additional guidelines.

Here the OctoPrint terminal results

Changing monitoring state from "Opening serial port" to "Connecting"
Send: N0 M110 N0*125
Recv: ok
[...]
Changing monitoring state from "Connecting" to "Operational"
[...]
Send: N0 M110 N0*125
Recv: ok
Send: N1 M115*39
Recv: FIRMWARE_NAME:Marlin bugfix-2.0.x (Github) SOURCE_CODE_URL:https://github.com/MarlinFirmware/Marlin PROTOCOL_VERSION:1.0 MACHINE_TYPE:3D Printer EXTRUDER_COUNT:1 UUID:cede2a2f-41a2-4748-9b12-c55c62f367ff
Recv: Cap:SERIAL_XON_XOFF:0
Recv: Cap:EEPROM:0
Recv: Cap:VOLUMETRIC:1
Recv: Cap:AUTOREPORT_TEMP:1
Recv: Cap:PROGRESS:0
Recv: Cap:PRINT_JOB:1
Recv: Cap:AUTOLEVEL:0
Recv: Cap:Z_PROBE:1
Recv: Cap:LEVELING_DATA:0
Recv: Cap:BUILD_PERCENT:0
Recv: Cap:SOFTWARE_POWER:0
Recv: Cap:TOGGLE_LIGHTS:0
Recv: Cap:CASE_LIGHT_BRIGHTNESS:0
Recv: Cap:EMERGENCY_PARSER:0
Recv: Cap:AUTOREPORT_SD_STATUS:0
Recv: Cap:THERMAL_PROTECTION:1
Recv: ok
Send: M21
Recv: echo:Unknown command: "M21"
Recv: ok
Send: M155 S2
Recv: ok
[...]
Changing monitoring state from "Operational" to "Printing"
Send: N0 M110 N0*125
Recv: ok
Send: N1 M107*36
Recv: ok
Send: N2 M115 U3.1.0*99
Recv: FIRMWARE_NAME:Marlin bugfix-2.0.x (Github) SOURCE_CODE_URL:https://github.com/MarlinFirmware/Marlin PROTOCOL_VERSION:1.0 MACHINE_TYPE:3D Printer EXTRUDER_COUNT:1 UUID:cede2a2f-41a2-4748-9b12-c55c62f367ff
Recv: Cap:SERIAL_XON_XOFF:0
Recv: Cap:EEPROM:0
Recv: Cap:VOLUMETRIC:1
Recv: Cap:AUTOREPORT_TEMP:1
Recv: Cap:PROGRESS:0
Recv: Cap:PRINT_JOB:1
Recv: Cap:AUTOLEVEL:0
Recv: Cap:Z_PROBE:1
Recv: Cap:LEVELING_DATA:0
Recv: Cap:BUILD_PERCENT:0
Recv: Cap:SOFTWARE_POWER:0
Recv: Cap:TOGGLE_LIGHTS:0
Recv: Cap:CASE_LIGHT_BRIGHTNESS:0
Recv: Cap:EMERGENCY_PARSER:0
Recv: Cap:AUTOREPORT_SD_STATUS:0
Recv: Cap:THERMAL_PROTECTION:1
Recv: ok
Send: N3 M155 S2*96
Recv: ok
Send: N4 M83*28
Recv: ok
Send: N5 M104 S215*102
Recv: ok
Send: N6 M140 S55*83
Recv: ok
Send: N7 M190 S55*95
Recv: ok
Send: N8 M109 S215*102
Recv: ok
Send: N9 G28 W*109
[...]
Recv: echo:busy: processing
Printer seems to support the busy protocol, adjusting timeouts and setting busy interval accordingly
[...]
Recv: echo:busy: processing
Recv: X:-20.00 Y:0.00 Z:0.00 E:0.00 Count X:-2000 Y:0 Z:0
Recv: ok
Send: N10 M113 S2*80
Recv: ok
Send: N11 G80*33
Recv: echo:Unknown command: "G80"
Recv: ok
Send: N12 G1 Y-3.0 F1000.0*27
Recv: ok
Send: N13 G1 X60.0 E9.0  F1000.0*97
Recv: ok
Send: N14 G1 X100.0 E12.5  F1000.0*110
Recv: ok
Send: N15 G92 E0.0*109
Recv: X:100.00 Y:0.00 Z:0.00 E:0.00 Count X:-2000 Y:0 Z:0
Recv: ok
Send: N16 M900 K30*117
Recv: echo:Unknown command: "M900 K30"
Recv: ok
Send: N17 G21*44
Recv: echo:Unknown command: "G21"
Recv: ok
Send: N18 G90*41
Recv: ok
Send: N19 M83*32
Recv: ok
Send: N20 G1 E-0.80000 F2100.00000*15
Recv: ok
Send: N21 G1 Z0.600 F7200.000*52
Recv: ok
Send: N22 G1 X78.634 Y82.751 F7200.000*99
Recv: ok
Send: N23 G1 Z0.200 F7200.000*50
Recv: ok
Send: N24 G1 E0.80000 F2100.00000*38
Recv: ok
Send: N25 M204 S1000*96
Recv: ok
Send: N26 G1 F1800*115
Recv: ok
Send: N27 G1 X79.985 Y82.623 E0.04257*84
Recv: ok
Send: N28 G1 X170.004 Y82.623 E2.82246*111
Recv: ok
Send: N29 G1 X171.356 Y82.749 E0.04259*100
Recv: ok
Send: N30 G1 X172.666 Y83.121 E0.04268*98
Recv: ok
Send: N31 G1 X173.884 Y83.728 E0.04268*111
Recv: ok
Send: N32 G1 X174.979 Y84.556 E0.04304*111
Recv: ok
Send: N33 G1 X175.890 Y85.558 E0.04245*98
Recv: ok
Send: N34 G1 X176.609 Y86.723 E0.04292*111
[...]
Recv: echo:busy: processing
[...]
Recv: echo:busy: processing
Recv: ok
Send: N35 G1 X177.099 Y87.993 E0.04268*97
[...]
Recv: echo:busy: processing
Recv: ok
Send: N36 G1 X177.351 Y89.392 E0.04458*101
[...]
Recv: ok
Send: N37 G1 X177.338 Y120.753 E0.98330*92
Recv: ok
Send: N38 G1 X177.120 Y121.924 E0.03733*82
Recv: ok
Send: N39 G1 X176.875 Y122.676 E0.02482*88
Recv: ok
Send: N40 G1 X176.326 Y123.792 E0.03899*86
Recv: ok
Send: N41 G1 X175.884 Y124.449 E0.02482*82
Recv: ok
Send: N42 G1 X175.376 Y125.049 E0.02466*88
Recv: ok
Send: N43 G1 X174.451 Y125.883 E0.03904*92
[...]
Recv: echo:busy: processing
[...]
Recv: ok
Send: N44 G1 X173.798 Y126.323 E0.02470*87
Recv: ok
Send: N45 G1 X172.714 Y126.859 E0.03792*91
Recv: ok
Send: N46 G1 X171.366 Y127.249 E0.04399*88
Recv: ok
Send: N47 G1 X170.015 Y127.377 E0.04256*81
Recv: ok
Send: N48 G1 X79.901 Y127.375 E2.82545*97
Recv: ok
Send: N49 G1 X78.719 Y127.264 E0.03723*110
Recv: ok
Send: N50 G1 X77.876 Y127.063 E0.02716*109
Recv: ok
Send: N51 G1 X76.711 Y126.603 E0.03927*111
Recv: ok
Send: N52 G1 X75.637 Y125.947 E0.03947*96
Recv: ok
Send: N53 G1 X74.966 Y125.391 E0.02732*103
Recv: ok
Send: N54 G1 X74.129 Y124.466 E0.03911*99
Recv: ok
Send: N55 G1 X73.679 Y123.801 E0.02518*105
Recv: ok
Send: N56 G1 X73.141 Y122.714 E0.03804*109
Recv: ok
Send: N57 G1 X72.751 Y121.370 E0.04387*104
Recv: ok
Send: N58 G1 X72.623 Y120.034 E0.04209*102
Recv: ok
Send: N59 G1 X72.657 Y89.292 E0.96388*91
Recv: ok
Send: N60 G1 X72.878 Y88.084 E0.03852*86
Recv: ok
Send: N61 G1 X73.123 Y87.331 E0.02482*83
Recv: ok
Send: N62 G1 X73.448 Y86.615 E0.02466*80
Recv: ok
Send: N63 G1 X74.109 Y85.560 E0.03903*91
[...]
Recv: echo:busy: processing
[...]
Recv: Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
Recv: Core 1 register dump:
Recv: PC      : 0x40085513  PS      : 0x00060e34  A0      : 0x800de7fd  A1      : 0x3ffc0b20
Recv: A2      : 0x3ffc10d8  A3      : 0x3ffc2c75  A4      : 0x3ffc0b48  A5      : 0x3ffc10d8
Recv: A6      : 0x3ffc2e8c  A7      : 0x00000001  A8      : 0xb33fffff  A9      : 0x0000abab
Recv: A10     : 0xb33fffff  A11     : 0x0000cdcd  A12     : 0x800d70f5  A13     : 0x00000001
Recv: A14     : 0x00060e23  A15     : 0x80000000  SAR     : 0x0000000f  EXCCAUSE: 0x00000006
Recv: EXCVADDR: 0x00000000  LBEG    : 0x400e5802  LEND    : 0x400e5839  LCOUNT  : 0x00000000
Recv: Core 1 was running in ISR context:
Recv: EPC1    : 0x40080e9c  EPC2    : 0x00000000  EPC3    : 0x00000000  EPC4    : 0x40085513
Recv: 
Recv: Backtrace: 0x40085513:0x3ffc0b20 0x400de7fa:0x3ffc0b40 0x400d25c3:0x3ffc0b70 0x400d8d52:0x3ffc0ba0 0x400d8da7:0x3ffc0bd0 0x40080e89:0x3ffc0bf0 0x40081695:0x3ffc0c10 0x40080e99:0x00000000
Recv: 
Recv: Core 0 register dump:
Recv: PC      : 0x400e235a  PS      : 0x00060734  A0      : 0x80085aa8  A1      : 0x3ffc8fe0
Recv: A2      : 0x00000008  A3      : 0x00000000  A4      : 0x00000001  A5      : 0x3ffc9624
Recv: A6      : 0x00000000  A7      : 0x00000001  A8      : 0x3ffc3be4  A9      : 0x3ffc3bc8
Recv: A10     : 0x00000000  A11     : 0x00000001  A12     : 0x00000000  A13     : 0x00000001
Recv: A14     : 0x00060021  A15     : 0x00060e23  SAR     : 0x00000000  EXCCAUSE: 0x00000006
Recv: EXCVADDR: 0x00000000  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000
Recv: 
Recv: Backtrace: 0x400e235a:0x3ffc8fe0 0x40085aa5:0x3ffc9000
Recv: 
Recv: Rebooting...
Recv: ets Jun  8 2016 00:22:57
Recv: 
Recv: rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
Printer requested line 0 but no sufficient history is available, can't resend
Changing monitoring state from "Printing" to "Error: Printer requested line 0 but no sufficient history is available, can't resend"
Changing monitoring state from "Error: Printer requested line 0 but no sufficient history is available, can't resend" to "Offline (Error: Printer requested line 0 but no sufficient history is available, can't resend)"
Connection closed, closing down monitor
Closing down send loop

Error compiling

Compile Error

Hi
I had to add/hack/fake the code below to compile, none of those were found.
What am I missing?
(I just download your code and use arduino 1.8.3 plus instructions in official Arduino: https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/debian_ubuntu.md)

#define MYSERIAL0 Serial
typedef uint32_t hal_timer_t;
#define NUM_SERIAL 1
#define STEPPER_ISR_ENABLED() 1//TEST(TIMSK1, OCIE1A)
FORCE_INLINE static hal_timer_t HAL_timer_get_compare(const uint8_t timer_num) {

}
#define PULSE_TIMER_NUM STEP_TIMER_NUM
#define PULSE_TIMER_PRESCALE STEPPER_TIMER_PRESCALE
FORCE_INLINE static void HAL_timer_set_compare(const uint8_t timer_num, const hal_timer_t compare) { /* ???? */
}

Thanks in advance

DISABLED Macro conflict

when macro are redefined but having same meaning it can be handled like _BV but here the macro name is identical but not same meaning:

In file included from C:\Users\luc\AppData\Local\Temp\arduino_build_569060\sketch\src/inc/MarlinConfigPre.h:27:0,

                 from C:\Users\luc\AppData\Local\Temp\arduino_build_569060\sketch\src/inc/MarlinConfig.h:26,

                 from C:\Users\luc\Desktop\Marlin\Marlin\Marlin.ino:23:

c:\users\luc\appdata\local\temp\arduino_build_569060\sketch\src\core\macros.h:133:0: warning: "DISABLED" redefined

 #define DISABLED(b) (!_CAT(SWITCH_ENABLED_, b))

 ^

In file included from C:\Users\luc\Documents\Arduino\hardware\espressif\esp32\cores\esp32/esp32-hal.h:52:0,

                 from C:\Users\luc\Documents\Arduino\hardware\espressif\esp32\cores\esp32/Arduino.h:35,

                 from C:\Users\luc\AppData\Local\Temp\arduino_build_569060\sketch\Marlin.ino.cpp:1:

C:\Users\luc\Documents\Arduino\hardware\espressif\esp32\cores\esp32/esp32-hal-gpio.h:51:0: note: this is the location of the previous definition

 #define DISABLED  0x00

Not sure about the impact yet but I think the solution should be done in macro.h

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.