GithubHelp home page GithubHelp logo

platformio / platformio-atom-ide Goto Github PK

View Code? Open in Web Editor NEW
475.0 28.0 72.0 1.14 MB

PlatformIO IDE for Atom: The next generation integrated development environment for IoT

Home Page: https://atom.io/packages/platformio-ide

License: Apache License 2.0

JavaScript 91.92% HTML 6.22% Less 1.86%
arduino iot atom build esp32 esp8266 libraries embedded ide platformio

platformio-atom-ide's Introduction

PlatformIO IDE for Atom Build Status

A new generation toolset for embedded C/C++ development

PlatformIO is a new generation ecosystem for embedded development.

  • Open source, maximum permissive Apache 2.0 license
  • Cross-platform IDE and Unified Debugger
  • Static Code Analyzer and Remote Unit Testing
  • Multi-platform and Multi-architecture Build System
  • Firmware File Explorer and Memory Inspection.

Platforms: Atmel AVR, Atmel SAM, Espressif 32, Espressif 8266, Freescale Kinetis, Infineon XMC, Intel ARC32, Lattice iCE40, Maxim 32, Microchip PIC32, Nordic nRF51, Nordic nRF52, NXP LPC, RISC-V, Samsung ARTIK, Silicon Labs EFM32, ST STM32, Teensy, TI MSP430, TI Tiva, WIZNet W7500

Frameworks: Arduino, ARTIK SDK, CMSIS, Energia, ESP-IDF, libOpenCM3, mbed, Pumbaa, Simba, SPL, STM32Cube, WiringPi

Features

  • Cross-platform code builder without external dependencies to a system software:

    • 500+ embedded boards
    • 25+ development platforms
    • 15+ frameworks
  • PIO Remote

  • PIO Unified Debugger

  • Unit Testing

  • C/C++ Intelligent Code Completion

  • C/C++ Smart Code Linter for rapid professional development

  • Library Manager for the hundreds popular libraries

  • Multi-projects workflow with multiple panes

  • Themes support with dark and light colors

  • Serial Port Monitor

  • Built-in Terminal with PlatformIO Core tool (pio, platformio)

How it works

Please follow to the official documentation PlatformIO IDE for Atom.

PlatformIO IDE for Atom

License

Copyright (c) 2016-present PlatformIO [email protected]

The PlatformIO IDE for Atom is licensed under the permissive Apache 2.0 license, so you can use it in both commercial and personal projects with confidence.

platformio-atom-ide's People

Contributors

bmv437 avatar dmytrokyrychuk avatar ivankravets avatar mkroman avatar urbaniak 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

platformio-atom-ide's Issues

Initialize project without added project folder

Currently, Init procedure requires to have opened folder for init operation. If there are no added folders to atom (first start), then show in INIT wizard Project Location: <open>. After init - automatically add it to IDE

Pause serial monitor during (serial) upload

When uploading through serial connection and having serial monitor open at the same time, the upload fails. At least that's my experience with various esp8266 boards and Arduinos.
Arduino IDE disconnects serial monitor during upload and reconnects afterwards without loosing history.
It would be great to have the same behavior in PlatformIO IDE.

The current behavior should not change for OTA updates though.

Find in project gives to many results

The new Tool-Button "Find" (in project) gives to many results. Maybe it should changed that the
function looks only in the src folder and only cpp/c/h files, but it will better that find works only
for the current buffer. Sorry, my mistake.

Lookup for valid Python interpreter

Please take a look at https://github.com/platformio/platformio-atom/blob/1f2ad3718bbfd132a5b31497bf52d39d1d71ac76/lib/utils.js#L28:L30

Need to return valid Python 2.7 Interpreter:

Windows OS:

  1. Check that python is called from CMD.
  2. If fails in step 1, then try to find C:\Python27\python.exe. Maybe user forget to add Python interpreter to environment PATH

Unix OS

  1. Try to find python2.7
  2. If fails in step 1, then return python.

Will be good to cache the result of getPythonExecutable() within Atom session.

Auto installed Atom packages doesn't work on the start

When users install package first time the dependent Atom packages are installed well but aren't initialized. The "View->Reload" command resolve this issue.

Need to show user dialog menu with "Reload" request if possible. Otherwise, need to show warning message with detailed info that need to "Reload" Atom.

What is goto error for?

I must be missing something here, because if you specify a range to linter errors, you can just click the at line 22 col 22 part of it and it'll take you to the place of error

Leonardo gcc-flags unexpected token

When using the Arduino Leonardo, the following error is produced:

selection_005

SyntaxError: /media/DataDrive/Projects/ASME/2015-2016/Code/.gcc-flags.json: Unexpected token &
    at Object.parse (native)
    at Object.Module._extensions..json (module.js:460:27)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (/usr/share/atom/resources/app.asar/src/native-compile-cache.js:50:27)
    at Object.module.exports.settings (/home/drdanielfc/.atom/packages/linter-gcc/lib/config.js:45:25)
    at Object.lint (/home/drdanielfc/.atom/packages/linter-gcc/lib/main.js:65:27)
    at promises.push.Promise.then._this.emitter.emit.linter (/home/drdanielfc/.atom/packages/linter/lib/linter-registry.js:63:26)
    at new Promise (/home/drdanielfc/.atom/packages/recent-projects/node_modules/babel-polyfill/node_modules/core-js/modules/es6.promise.js:197:7)
    at /home/drdanielfc/.atom/packages/linter/lib/linter-registry.js:62:23
    at Set.forEach (native)
    at LinterRegistry.lint (/home/drdanielfc/.atom/packages/linter/lib/linter-registry.js:60:18)
    at /home/drdanielfc/.atom/packages/linter/lib/linter.coffee:98:16
    at Function.module.exports.Emitter.simpleDispatch (/usr/share/atom/resources/app.asar/node_modules/event-kit/lib/emitter.js:25:14)
    at Emitter.module.exports.Emitter.emit (/usr/share/atom/resources/app.asar/node_modules/event-kit/lib/emitter.js:125:28)
    at /home/drdanielfc/.atom/packages/linter/lib/editor-linter.js:30:20
    at Function.module.exports.Emitter.simpleDispatch (/usr/share/atom/resources/app.asar/node_modules/event-kit/lib/emitter.js:25:14)
    at Emitter.module.exports.Emitter.emit (/usr/share/atom/resources/app.asar/node_modules/event-kit/lib/emitter.js:125:28)
    at TextBuffer.module.exports.TextBuffer.saveAs (/usr/share/atom/resources/app.asar/node_modules/text-buffer/lib/text-buffer.js:1067:27)
    at TextBuffer.module.exports.TextBuffer.save (/usr/share/atom/resources/app.asar/node_modules/text-buffer/lib/text-buffer.js:1037:19)
    at TextEditor.module.exports.TextEditor.save (/usr/share/atom/resources/app.asar/src/text-editor.js:602:26)
    at Pane.module.exports.Pane.saveItem (/usr/share/atom/resources/app.asar/src/pane.js:534:18)
    at Pane.module.exports.Pane.saveActiveItem (/usr/share/atom/resources/app.asar/src/pane.js:517:19)
    at Workspace.module.exports.Workspace.saveActivePaneItem (/usr/share/atom/resources/app.asar/src/workspace.js:643:35)
    at atom-workspace.commandRegistry.add.core:save (/usr/share/atom/resources/app.asar/src/register-default-commands.js:173:32)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/usr/share/atom/resources/app.asar/src/command-registry.js:260:29)
    at /usr/share/atom/resources/app.asar/src/command-registry.js:3:61
    at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/usr/share/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:536:16)
    at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/usr/share/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:359:22)
    at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeydown (/usr/share/atom/resources/app.asar/src/window-event-handler.js:97:36)
    at HTMLDocument.<anonymous> (/usr/share/atom/resources/app.asar/src/window-event-handler.js:3:61)

Here is the .gcc-flags.json the IDE produces:

{
  "execPath": "/home/drdanielfc/.platformio/packages/toolchain-atmelavr/bin/avr-g++",
  "gccDefaultCFlags": "-fsyntax-only -std=gnu11 -fPIC -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_LEONARDO -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DUSB_PRODUCT=\&quot;Arduino Leonardo\&quot; -DARDUINO=10607 -DPLATFORMIO=020803",
  "gccDefaultCppFlags": "-fsyntax-only -fno-exceptions -fno-threadsafe-statics -std=gnu++11 -fPIC -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_LEONARDO -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DUSB_PRODUCT=\&quot;Arduino Leonardo\&quot; -DARDUINO=10607 -DPLATFORMIO=020803",
  "gccErrorLimit": 15,
  "gccIncludePaths": "/home/drdanielfc/.platformio/packages/framework-arduinoavr/variants/leonardo,/home/drdanielfc/.platformio/packages/framework-arduinoavr/cores/arduino,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Audio/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Bridge/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/EEPROM,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Esplora/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Ethernet/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Firmata,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/GSM/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/HID,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Keyboard/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/LiquidCrystal/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Mouse/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/RobotIRremote/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Robot_Control/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Robot_Motor/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/SD/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/SPI,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Scheduler/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Servo/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/SoftwareSerial,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/SpacebrewYun/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Stepper/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/TFT/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Temboo/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/USBHost/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/WiFi/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Wire,/home/drdanielfc/.platformio/packages/toolchain-atmelavr/avr/include,/home/drdanielfc/.platformio/packages/toolchain-atmelavr/lib/gcc/avr/4.8.1/include-fixed,/home/drdanielfc/.platformio/packages/toolchain-atmelavr/lib/gcc/avr/4.8.1/include",
  "gccSuppressWarnings": false
}

I was able to manually fix the file by removing the parameters that contained \&quot;, and things seem to be working. Here is the updated file:

{
  "execPath": "/home/drdanielfc/.platformio/packages/toolchain-atmelavr/bin/avr-g++",
  "gccDefaultCFlags": "-fsyntax-only -std=gnu11 -fPIC -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_LEONARDO -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=10607 -DPLATFORMIO=020803",
  "gccDefaultCppFlags": "-fsyntax-only -fno-exceptions -fno-threadsafe-statics -std=gnu++11 -fPIC -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_LEONARDO -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=10607 -DPLATFORMIO=020803",
  "gccErrorLimit": 15,
  "gccIncludePaths": "/home/drdanielfc/.platformio/packages/framework-arduinoavr/variants/leonardo,/home/drdanielfc/.platformio/packages/framework-arduinoavr/cores/arduino,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Audio/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Bridge/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/EEPROM,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Esplora/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Ethernet/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Firmata,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/GSM/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/HID,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Keyboard/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/LiquidCrystal/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Mouse/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/RobotIRremote/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Robot_Control/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Robot_Motor/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/SD/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/SPI,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Scheduler/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Servo/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/SoftwareSerial,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/SpacebrewYun/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Stepper/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/TFT/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Temboo/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/USBHost/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/WiFi/src,/home/drdanielfc/.platformio/packages/framework-arduinoavr/libraries/Wire,/home/drdanielfc/.platformio/packages/toolchain-atmelavr/avr/include,/home/drdanielfc/.platformio/packages/toolchain-atmelavr/lib/gcc/avr/4.8.1/include-fixed,/home/drdanielfc/.platformio/packages/toolchain-atmelavr/lib/gcc/avr/4.8.1/include",
  "gccSuppressWarnings": false
}

Using built-in pio cli not possible (PATH modification fails)

Solution

Temporary solutions:


Under certain (unknown) circumstances it's not possible to use the built-in pio command.

My system:

  • Arch Linux
  • Atom 1.5.3
  • PlatformIO 2.8.4 | IDE 1.0.0
  • NodeJS 5.6.0

problematic with both bash and zsh

default $PATH: /usr/local/sbin:/usr/local/bin:/usr/bin

$PATH is updated in "process.env.PATH":
(dev console in atom)

> process.env.PATH
<- "/home/user/.atom/packages/platformio-ide/penv/bin:/usr/local/sbin:/usr/local/bin:/usr/bin

but when clicking on e.g. serial ports toolbar button I get this:

$ pio serialports list
command not found: pio
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/bin
$ node -e "console.log(process.env.PATH)"
/usr/local/sbin:/usr/local/bin:/usr/bin
$ export PATH=/home/user/.atom/packages/platformio-ide/penv/bin:$PATH
$ which pio
/home/user/.atom/packages/platformio-ide/penv/bin/pio

Windows problem?

THNX for the great work involved in making this package!!

As you can see in this picture something is wrong with the path in Windows (U use "\" instead of "") which generates an error when Building, Uploading and Compiling.
(it works just fine by hand from the commandline)

error1

error2

What to do?

Framework Installation

Can you add the possibility for downloading the necessary files for the frameworks
(mbed, arduino ...) at the installation process of the IDE. Also as a menu to do it later.
a new project.
This will help us to start a new project without waiting for downloading while the
workflow and also to use offline.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/30979332-framework-installation?utm_campaign=plugin&utm_content=tracker%2F29335434&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F29335434&utm_medium=issues&utm_source=github).

Suggestion: show progress of Project initialization

It'll be a good idea to show the progress of the initialization of the project, or even the CLI output as each component is downloaded and installed, as the downloads may sometimes be large so take several minutes to complete.

C/C++ Rebuild Index (Autocomplete, Linter)

Add new item C/C++ Rebuild Index (Autocomplete, Linter) to menu above "Install Shell Commands". This command should:

  1. Check that "platformio.ini" exists in the project. If doesn't exists need to show error message "Please initialize new project first"
  2. If exists, then check that it has minimum one active [env: with board option. Use ini parser based on node.js. If no active [env: show warning message: "Rebuild operation has been skipped (empty project) "
  3. platformio.ini exists, you have found the first [env: and know board. Then just repeat init command platformio init --ide atom -b ***. This operation will rebuild all confs for autocomplete and linter

hide/show toolbar

I am trying out this project but one thing that strikes me immediately is how to only show the toolbar when it's relevant ? I was already using atom before installing this addon and this toolbar is non useful to me on non platformio projects.
I have no idea if this is possible but having an option to show it on specific projects would be nice.

cannot use system installed platformio

I'd rather use only one install of platformio : the system one should be used by the IDE (same libs etc,)
I unchecked 'use built-in platformIO but cannot use it
I receive :

'platformio' could not be spawned. Is it installed and on your path? If so please open an issue on the package spawning the process.

Advanced using of Serial Monitor

PlatformIO's Serial Monitor has advanced options. Need to add them to GUI. I propose to change layout to the next;

Port: [select]
Baudrate: [INPUT], default 9600 (only INT)

<link>Advanced settings</link> (show/hide)
Parity: [select], default `N`
Filter: [select], default `default`
EOL Mode: [select]

Error message when updating to 0.3.2.

When updating to 0.3.2., the update process seems to stop, in the background i get following error message, When I restart Atom there a no more messages and it works:
installation 0 3 2

Delete obsolete packages

When 0.2.0 will be installed on user's PC need to remove obsolete conflicting packages using apm uninstall:

  • linter-clang
  • ult-terminal

Create test for PlatformIO installation

Create new test in spec folder and test makeSurePlatformioInstalled() from https://github.com/platformio/platformio-atom/blob/develop/lib/maintenance.js#L31

Travis.CI is enabled https://travis-ci.org/platformio/platformio-atom

https://raw.githubusercontent.com/atom/ci/master/build-package.sh is used for tests.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/29923899-create-test-for-platformio-installation?utm_campaign=plugin&utm_content=tracker%2F29335434&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F29335434&utm_medium=issues&utm_source=github).

Generate dynamic targets with build environment

  1. If platformio.ini contains more than 1 active environment [env: need to generate new dynamic targets after existing statically pre-filled:
  • Build (env:%name1%)
  • Upload (env:%name1%)
  • Clean (env:%name1%)
  • Build (env:%nameN%)
  • Upload (env:%nameN%)
  • Clean (env:%nameN%)
  1. Add new item Menu: PlatformIO > Update targets to menu AFTER Run other target.... It should call something from atom-build to rescan targets
  2. Will be good to listen changes in platformio.ini and it is changed automatically make step above

Uncaught Error: Cannot find module 'witwip' - update failed

[Enter steps to reproduce below:]

  1. update to version 3.3 failed due to missing witwip

Atom Version: 1.4.1
System: Mac OS X 10.11.3
Thrown From: platformio-ide package, v0.3.3

Stack Trace

Uncaught Error: Cannot find module 'witwip'

At module.js:338

Error: Cannot find module 'witwip'
    at Module._resolveFilename (module.js:336:15)
    at Function.Module._resolveFilename (/Applications/Atom.app/Contents/Resources/app.asar/src/module-cache.js:383:52)
    at Function.Module._load (module.js:286:25)
    at Module.require (module.js:365:17)
    at require (/Applications/Atom.app/Contents/Resources/app.asar/src/native-compile-cache.js:50:27)
    at getPackageJSONpath (/Users/dsc/.atom/packages/platformio-ide/node_modules/atom-package-dependencies/index.js:78:17)
    at getPackageDependencies (/Users/dsc/.atom/packages/platformio-ide/node_modules/atom-package-dependencies/index.js:87:3)
    at Object.module.exports.install (/Users/dsc/.atom/packages/platformio-ide/node_modules/atom-package-dependencies/index.js:8:5)
    at ChildProcess.<anonymous> (/Users/dsc/.atom/packages/platformio-ide/lib/install/command.js:258:44)
    at emitTwo (events.js:87:13)
    at ChildProcess.emit (events.js:172:7)
    at maybeClose (internal/child_process.js:817:16)
    at Socket.<anonymous> (internal/child_process.js:319:11)
    at emitOne (events.js:77:13)
    at Socket.emit (events.js:169:7)
    at Pipe._onclose (net.js:469:12)

Commands

     -0:47.9.0 settings-view:check-for-package-updates (atom-text-editor.editor.is-focused)

Config

{
  "core": {
    "themes": [
      "atom-dark-ui",
      "one-dark-syntax"
    ]
  }
}

Installed Packages

# User
atom-ternjs, v0.13.2
autocomplete-clang, v0.8.9
autocomplete-python, v1.5.1
build, v0.53.0
color-picker, v2.1.1
file-icons, v1.6.14
language-arduino, v0.4.1
language-cmake, v0.1.4
language-ini, v1.14.0
language-latex, v0.6.1
latex, v0.29.0
latexer, v0.2.7
linter, v1.11.3
linter-chktex, v1.2.5
linter-flake8, v1.10.0
linter-gcc, v0.5.13
linter-pep8, v1.2.1
markdown-preview-plus, v2.2.2
minimap, v4.19.0
minimap-git-diff, v4.1.8
platformio-ide, v0.3.3
travis-ci-status, v1.0.0

# Dev
No dev packages

Serial Monitor

GUI

When user clicks on "Serial Monitor" need to show panel which is the same as Init but contains the next items:

Port: [ select with ports ] [REFRESH ICON for ports] Baudrate: [ predefined list] , 9600 should be selected by default

[Open] [Cancel]

Run Monitor

Such as platformio serialports monitor requires to be run with tty, we should use os native hooks

  • Window: Call platformio serialports monitor -p *** -b ***
  • Linux: Call script -c "FULL_PATH_TO_PLATFORMIO serialports monitor -p *** -b ***" /dev/null
  • Mac OS X: Call script /dev/null "FULL_PATH_TO_PLATFORMIO" serialports monitor -p *** -b ***

Temporary solution for STDIN

Please take a look at https://github.com/jeremyramin/terminal-plus where platformio serialports monitor works as well.

Terminal window size

It is possible that the IDE remembers the last size of the terminal-window and also to use the last
size for new terminal-windows.

Toolbar Position at start

The Toolbar is always at the left side when starting atom, regardless of the main settings in the tool-bar package.

Adding a second NodeMCU project causes build errors

Hi @ivankravets ,

One NodeMCU project with Atom IDE works fine. If I add a second project both projects result in build errors that don't appear to be related to the actual source code of the project.

My environment:
OS X 10.11.3
Atom 1.4.1
IDE 0.3.3 | CLI 2.8.2

Build errors:

.pioenvs/nodemcu/FrameworkArduino/core_esp8266_main.cpp xtensa-lx106-elf-gcc -o .pioenvs/nodemcu/FrameworkArduino/core_esp8266_noniso.o -c -std=gnu99 -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -nostdlib -Os -mlongcalls -mtext-section-literals -falign-functions=4 -U__STRICT_ANSI__ -ffunction-sections -fdata-sections -MMD -DF_CPU=80000000L -D__ets__ -DICACHE_FLASH -DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP12 -DARDUINO=200 -I/Users/tonykambo/.platformio/packages/framework-arduinoespressif/tools/sdk/include -I.pioenvs/nodemcu/FrameworkArduino -I.pioenvs/nodemcu/FrameworkArduinoVariant .pioenvs/nodemcu/FrameworkArduino/core_esp8266_noniso.c xtensa-lx106-elf-gcc: error: .pioenvs/nodemcu/FrameworkArduino/core_esp8266_noniso.c: No such file or directory scons: *** [.pioenvs/nodemcu/FrameworkArduino/core_esp8266_noniso.o] Error 1 xtensa-lx106-elf-g++ -o .pioenvs/nodemcu/FrameworkArduino/core_esp8266_main.o -c -fno-rtti -fno-exceptions -std=c++11 -Os -mlongcalls -mtext-section-literals -falign-functions=4 -U__STRICT_ANSI__ -ffunction-sections -fdata-sections -MMD -DF_CPU=80000000L -D__ets__ -DICACHE_FLASH -DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP12 -DARDUINO=200 -I/Users/tonykambo/.platformio/packages/framework-arduinoespressif/tools/sdk/include -I.pioenvs/nodemcu/FrameworkArduino -I.pioenvs/nodemcu/FrameworkArduinoVariant .pioenvs/nodemcu/FrameworkArduino/core_esp8266_main.cpp

.pioenvs/nodemcu/libSensitiveConfig.a -Wl,--end-group "xtensa-lx106-elf-size" -B -d .pioenvs/nodemcu/firmware.elf text data bss dec hex filename 217474 2458 31832 251764 3d774 .pioenvs/nodemcu/firmware.elf "/Users/tonykambo/.platformio/packages/tool-esptool/esptool" -eo "/Users/tonykambo/.platformio/packages/framework-arduinoespressif/bootloaders/eboot/eboot.elf" -bo .pioenvs/nodemcu/firmware.bin -bm dio -bf 80 -bz 4M -bs .text -bp 4096 -ec -eo .pioenvs/nodemcu/firmware.elf -bs .irom0.text -bs .text -bs .data -bs .rodata -bc -ec Error in atexit._run_exitfuncs: Traceback (most recent call last): File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/atexit.py", line 24, in _run_exitfuncs func(*targs, **kargs) File "/Users/tonykambo/.atom/packages/platformio-ide/penv/lib/python2.7/site-packages/platformio/builder/tools/piomisc.py", line 118, in delete_tmpcpp_file remove(file_) OSError: [Errno 2] No such file or directory: '/Users/tonykambo/Documents/Development/Embedded/PlatformIO/SmartLetterbox/src/tmp_ino_to.cpp' Error in sys.exitfunc: Traceback (most recent call last): File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/atexit.py", line 24, in _run_exitfuncs func(*targs, **kargs) File "/Users/tonykambo/.atom/packages/platformio-ide/penv/lib/python2.7/site-packages/platformio/builder/tools/piomisc.py", line 118, in delete_tmpcpp_file remove(file_) OSError: [Errno 2] No such file or directory: '/Users/tonykambo/Documents/Development/Embedded/PlatformIO/SmartLetterbox/src/tmp_ino_to.cpp' ========================= [SUCCESS] Took 2.88 seconds =========================

Original project that used to work but now doesn't:

-Wl,-wrap,system_restart_local -Wl,-wrap,register_chipv6_phy -Wl,-T"esp8266.flash.4m1m.ld" .pioenvs/nodemcu/src/tmp_ino_to.o -L/Users/tonykambo/.platformio/packages/framework-arduinoespressif/tools/sdk/lib -L/Users/tonykambo/.platformio/packages/ldscripts -L.pioenvs/nodemcu -Wl,--start-group -lsmartconfig -lpp -lmain -lwpa -llwip -lnet80211 -lwps -lcrypto -lphy -lhal -laxtls -lgcc -lm .pioenvs/nodemcu/libFrameworkArduinoVariant.a .pioenvs/nodemcu/libFrameworkArduino.a .pioenvs/nodemcu/libESP8266WiFi.a .pioenvs/nodemcu/libPubSubClient_ID89.a .pioenvs/nodemcu/libWire.a .pioenvs/nodemcu/libLiquidCrystal_I2C_ID576.a .pioenvs/nodemcu/libAdafruit_DHT_ID19.a .pioenvs/nodemcu/libSensitiveConfig.a -Wl,--end-group .pioenvs/nodemcu/libPubSubClient_ID89.a: error adding symbols: Archive has no index; run ranlib to add one collect2: error: ld returned 1 exit status scons: *** [.pioenvs/nodemcu/firmware.elf] Error 1 .pioenvs/nodemcu/libPubSubClient_ID89.a: error adding symbols: Archive has no index; run ranlib to add one collect2: error: ld returned 1 exit status scons: *** [.pioenvs/nodemcu/firmware.elf] Error 1 Error in atexit._run_exitfuncs: Traceback (most recent call last): File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/atexit.py", line 24, in _run_exitfuncs func(*targs, **kargs) File "/Users/tonykambo/.atom/packages/platformio-ide/penv/lib/python2.7/site-packages/platformio/builder/tools/piomisc.py", line 118, in delete_tmpcpp_file remove(file_) OSError: [Errno 2] No such file or directory: '/Users/tonykambo/Documents/Development/Embedded/PlatformIO/IncubatorController/src/tmp_ino_to.cpp' Error in sys.exitfunc: Traceback (most recent call last): File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/atexit.py", line 24, in _run_exitfuncs func(*targs, **kargs) File "/Users/tonykambo/.atom/packages/platformio-ide/penv/lib/python2.7/site-packages/platformio/builder/tools/piomisc.py", line 118, in delete_tmpcpp_file remove(file_) OSError: [Errno 2] No such file or directory: '/Users/tonykambo/Documents/Development/Embedded/PlatformIO/IncubatorController/src/tmp_ino_to.cpp' ========================= [ ERROR ] Took 3.77 seconds ========================= ========================= [ ERROR ] Took 3.75 seconds ========================= 3.7 sBuild failed.

Even performing a Clean on the project results in an error.

Removed .pioenvs/nodemcu/ESP8266WiFi/WiFiServer.o Removed .pioenvs/nodemcu/ESP8266WiFi/WiFiClient.o Removed .pioenvs/nodemcu/ESP8266WiFi/WiFiUdp.o Removed .pioenvs/nodemcu/PubSubClient_ID89/PubSubClient.o Removed .pioenvs/nodemcu/libSensitiveConfig.a Removed .pioenvs/nodemcu/Adafruit_DHT_ID19/DHT.o Removed .pioenvs/nodemcu/Wire/Wire.o Removed .pioenvs/nodemcu/libESP8266WiFi.a Removed .pioenvs/nodemcu/libPubSubClient_ID89.a Removed .pioenvs/nodemcu/libWire.a Removed .pioenvs/nodemcu/libAdafruit_DHT_ID19.a Removed .pioenvs/nodemcu/firmware.elf Removed .pioenvs/nodemcu/firmware.bin ========================= [SUCCESS] Took 0.53 seconds ========================= Error in atexit._run_exitfuncs: Traceback (most recent call last): File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/atexit.py", line 24, in _run_exitfuncs func(*targs, **kargs) File "/Users/tonykambo/.atom/packages/platformio-ide/penv/lib/python2.7/site-packages/platformio/builder/tools/piomisc.py", line 118, in delete_tmpcpp_file remove(file_) OSError: [Errno 2] No such file or directory: '/Users/tonykambo/Documents/Development/Embedded/PlatformIO/SmartLetterbox/src/tmp_ino_to.cpp' Error in sys.exitfunc: Traceback (most recent call last): File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/atexit.py", line 24, in _run_exitfuncs func(*targs, **kargs) File "/Users/tonykambo/.atom/packages/platformio-ide/penv/lib/python2.7/site-packages/platformio/builder/tools/piomisc.py", line 118, in delete_tmpcpp_file remove(file_) OSError: [Errno 2] No such file or directory: '/Users/tonykambo/Documents/Development/Embedded/PlatformIO/SmartLetterbox/src/tmp_ino_to.cpp' ========================= [SUCCESS] Took 0.53 seconds =========================

Adding a second NodeMCU project still causes build errors

Hi @ivankravets,

After platformio/platformio-core@223a055 in #30 errors still appear though I a now able to Clean successfully.

`I performed a Clean which now works. The first project built once OK. The second project had errors. The first project is also now showing build errors:

.pioenvs/nodemcu/FrameworkArduino/cont.o .pioenvs/nodemcu/FrameworkArduino/cont.S xtensa-lx106-elf-gcc -o .pioenvs/nodemcu/FrameworkArduino/cont_util.o -c -std=gnu99 -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -nostdlib -Os -mlongcalls -mtext-section-literals -falign-functions=4 -U__STRICT_ANSI__ -ffunction-sections -fdata-sections -MMD -DF_CPU=80000000L -D__ets__ -DICACHE_FLASH -DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP12 -DARDUINO=200 -I/Users/tonykambo/.platformio/packages/framework-arduinoespressif/tools/sdk/include -I.pioenvs/nodemcu/FrameworkArduino -I.pioenvs/nodemcu/FrameworkArduinoVariant .pioenvs/nodemcu/FrameworkArduino/cont_util.c xtensa-lx106-elf-gcc: error: .pioenvs/nodemcu/FrameworkArduino/cont_util.c: No such file or directory scons: *** [.pioenvs/nodemcu/FrameworkArduino/cont_util.o] Error 1 xtensa-lx106-elf-gcc -o .pioenvs/nodemcu/FrameworkArduino/core_esp8266_eboot_command.o -c -std=gnu99 -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -nostdlib -Os -mlongcalls -mtext-section-literals -falign-functions=4 -U__STRICT_ANSI__ -ffunction-sections -fdata-sections -MMD -DF_CPU=80000000L -D__ets__ -DICACHE_FLASH -DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP12 -DARDUINO=200 -

and the second project:

.pioenvs/nodemcu/FrameworkArduino/spiffs/spiffs_cache.c xtensa-lx106-elf-gcc -o .pioenvs/nodemcu/FrameworkArduino/spiffs/spiffs_check.o -c -std=gnu99 -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -nostdlib -Os -mlongcalls -mtext-section-literals -falign-functions=4 -U__STRICT_ANSI__ -ffunction-sections -fdata-sections -MMD -DF_CPU=80000000L -D__ets__ -DICACHE_FLASH -DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP12 -DARDUINO=200 -I/Users/tonykambo/.platformio/packages/framework-arduinoespressif/tools/sdk/include -I.pioenvs/nodemcu/FrameworkArduino -I.pioenvs/nodemcu/FrameworkArduinoVariant .pioenvs/nodemcu/FrameworkArduino/spiffs/spiffs_check.c .pioenvs/nodemcu/FrameworkArduino/spiffs/spiffs_check.c:23:28: fatal error: spiffs_nucleus.h: No such file or directory #include "spiffs_nucleus.h" ^ compilation terminated.

.pioenvs/nodemcu/FrameworkArduino/spiffs/spiffs_nucleus.c xtensa-lx106-elf-g++ -o .pioenvs/nodemcu/FrameworkArduino/spiffs_api.o -c -fno-rtti -fno-exceptions -std=c++11 -Os -mlongcalls -mtext-section-literals -falign-functions=4 -U__STRICT_ANSI__ -ffunction-sections -fdata-sections -MMD -DF_CPU=80000000L -D__ets__ -DICACHE_FLASH -DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP12 -DARDUINO=200 -I/Users/tonykambo/.platformio/packages/framework-arduinoespressif/tools/sdk/include -I.pioenvs/nodemcu/FrameworkArduino -I.pioenvs/nodemcu/FrameworkArduinoVariant .pioenvs/nodemcu/FrameworkArduino/spiffs_api.cpp scons: *** [.pioenvs/nodemcu/FrameworkArduino/spiffs/spiffs_check.o] Error 1`

The error seems to vary each time you build:

.pioenvs/nodemcu/FrameworkArduino/spiffs_hal.o .pioenvs/nodemcu/FrameworkArduino/time.o xtensa-lx106-elf-ar: .pioenvs/nodemcu/FrameworkArduino/spiffs/spiffs_nucleus.o: No such file or directory scons: *** [.pioenvs/nodemcu/libFrameworkArduino.a] Error 1

PlatformIO IDE hangs when installing behind a proxy.

Temporary solution

#48 (comment)

Installing PlatformIO as Atom plugin or the standalone package, I get stuck at this point:

ls -A ~/.atom/packages/platformio-ide/.cache gives only virtualenv.tar.gz but even that's 0 bytes, so nothing is getting downloaded at all.

I've configured proxy settings correctly in the Atom IDE and able to install other plugins. I have a HTTP proxy.

PlatformiO website donation system has problems

I just tried to donate $50 to platformio to help cover the cost of file hosting. The donation system is "strange", I got to the externaly hosted donation page, and put in my details and cc card details, got sent a sms message, put in the pass code, got to the part where I fill in my personal details, and when I pressed submit, got a small red panel with an error message in Russian. When I tried to capture the message, as soon as I moved my mouse of did anything else the panel disappeared.

So now I don't know if my donation has been submitted or not, and I don't know what the error was. I have also seem to have submitted a bunch of personal data to a site in Russia, which appears to send out sms messages in Dutch. Not very reassuring.

I suspect you have a very low donation rate?, it may be worth taking this up with your provider.

gcc linter with mbed rtos.h, EthernetInterface.h

I have project with a mbed seeeduino ArchPro. I included some headerfiles like rtos.h etc.
The project works with no problem but the gcc linter gives me always a warning. It seems that the linter can't find the path. The header files are no user libs, they are syslibs of mbed.

gcc rtos error

Prompt windows user to install Python

If Python is not installed in the system current installer script will show error message https://github.com/platformio/platformio-atom-ide/blob/develop/lib/install/command.js#L78

Need to show prompt menu with

PlatformIO is written in Python and depends on it. However, "python" command has not been found in your system PATH. Please install Python 2.7 and don't forget to "Add python.exe to Path" on the installation stage.

[Install Python] [Abort PlatformIO IDE Installation]

[Install Python] should open link https://www.python.org/downloads/

Compiling difference between Arduino IDE and Platformio

First, let me say thank you for this incredible Atom plugin!!! It majorly improves my dev time compared with the Arduino IDE!
I successfully compiled and uploaded a few programs for Arduino Due, but I ran into one bug.
The following program compiles, uploads and works with the Arduino IDE:

char myBuffer[5] = {' ', ' ', ' ', ' ', ' '};
void setup() {}

void loop() {
  SerialUSB.println(fillMyBuffer());
  delay(1000);
}

char* fillMyBuffer() {
  for (int i = 0; i < 5; i++) {
    myBuffer[i] = 'A';
  }
  return myBuffer;
}

Using Atom + Platformio, I get the following build error:
error: 'fillMyBuffer' was not declared in this scope

Here's what's on the build panel:

Executing: platformio run 
[02/10/16 12:25:42] Processing dueUSB (platform: atmelsam, board: dueUSB, framework: arduino)

[02/10/16 12:25:42] Processing dueUSB (platform: atmelsam, board: dueUSB, framework: arduino)

arm-none-eabi-g++ -o .pioenvs\dueUSB\src\tmp_ino_to.o -c -fno-rtti -fno-exceptions -g -Os -ffunction-sections -fdata-sections -Wall -mthumb -mcpu=cortex-m3 -nostdlib -DF_CPU=84000000L -DUSBCON -DUSB_MANUFACTURER="PlatformIO" -Dprintf=iprintf -D__SAM3X8E__ -DARDUINO_SAM_DUE -DARDUINO_ARCH_SAM -DUSB_VID=0x2341 -DUSB_PID=0x003e "-DUSB_PRODUCT=\"Arduino Due\"" -DARDUINO=10606 -DPLATFORMIO=020804 -I.pioenvs\dueUSB\FrameworkArduino -I.pioenvs\dueUSB\FrameworkCMSISInc -I.pioenvs\dueUSB\FrameworkLibSam -I.pioenvs\dueUSB\FrameworkLibSam\include -I.pioenvs\dueUSB\FrameworkDeviceInc -I.pioenvs\dueUSB\FrameworkDeviceInc\3x8e\include -I.pioenvs\dueUSB\FrameworkArduinoVariant src\tmp_ino_to.cpp
arm-none-eabi-g++ -o .pioenvs\dueUSB\src\tmp_ino_to.o -c -fno-rtti -fno-exceptions -g -Os -ffunction-sections -fdata-sections -Wall -mthumb -mcpu=cortex-m3 -nostdlib -DF_CPU=84000000L -DUSBCON -DUSB_MANUFACTURER="PlatformIO" -Dprintf=iprintf -D__SAM3X8E__ -DARDUINO_SAM_DUE -DARDUINO_ARCH_SAM -DUSB_VID=0x2341 -DUSB_PID=0x003e "-DUSB_PRODUCT=\"Arduino Due\"" -DARDUINO=10606 -DPLATFORMIO=020804 -I.pioenvs\dueUSB\FrameworkArduino -I.pioenvs\dueUSB\FrameworkCMSISInc -I.pioenvs\dueUSB\FrameworkLibSam -I.pioenvs\dueUSB\FrameworkLibSam\include -I.pioenvs\dueUSB\FrameworkDeviceInc -I.pioenvs\dueUSB\FrameworkDeviceInc\3x8e\include -I.pioenvs\dueUSB\FrameworkArduinoVariant src\tmp_ino_to.cpp
AtomTest.ino: In function 'void loop()':
AtomTest.ino:7:32: error: 'fillMyBuffer' was not declared in this scope
AtomTest.ino: In function 'void loop()':
AtomTest.ino:7:32: error: 'fillMyBuffer' was not declared in this scope
scons: *** [.pioenvs\dueUSB\src\tmp_ino_to.o] Error 1
 [ ERROR ] Took 2.92 seconds 
scons: *** [.pioenvs\dueUSB\src\tmp_ino_to.o] Error 1
 [ ERROR ] Took 2.88 seconds 

Thanks again!

Please, Please, Please host the files somewhere else than Sourceforge

I have been trying all day to download the 64-bit rpm and i have had nothing but error 500 pages, "sorry we are down for maintenance", "sorry this project does not exist", and in most cases just "connection reset by peer"

Its a mess, would it not be better to host the release on github, i believe they have a file download area too.

Implement menu item "PlatformIO: Initialize new Project"

Need to add to "PlatformIO" menu "Initialize new project" item which should open new pane/panel/view with the next GUI:

  • list with actual embedded boards
  • allow to select more than 1 boards
  • search/filter by boards will be good

The final CLI command should looks like

platformio -f -c atom init --ide atom -b ID_OF_THE_FIRST_SELECTED_BOARD

Show progress pane when installing PlatformIO

When user installing plugin first time this could take a lot of time. Need to convert existing code in to split actions/state and to allow user to cancel installation process within the next stages:

  1. Download virtualenv
  2. Init python_environment
  3. Install PlatformIO
  4. Install dependent packages

From the user's side should be separated pane(maybe like for init) like

Installing PlatformIO... Please be patient and let the installation to be completed.

[ --- progress bar--- with 4 states. Don't put here labels. Just percents ]

[Cancel Button]

if user press [CANCEL] button the need to remove python_environment folder. It means that after reloading installation process will start from the beginning.

build window autoclose, advice error

When a build or upload is finished with no errors, the window is closing itself automatic.
It will be usefull to let the window stay open to see the build summaries, like memory consumption
of the board etc. I think we can close the window manual
Same problem when have errors on initialize or updating a project, when errors the red advice window closes automatic after a while, it is to fast to analyze the errors.

linter-gcc not found

Get this error when saving:

linter-gcc: Executable not found

"/usr/bin/g++" not found

Looks like a problem width the path. I looked into .platformio on Win, but when manually inserting a path for the linter he complains about Arduino.h, but building works fine.
Tried

  • avr-g++.exe
  • arm-none-eabi-g++.exe

So where should I point may PATH var for the linter?

Running

  • Win7 pro
  • IDE 0.2.1 | CLI 2.8.0.dev6
  • linter-gcc 0.5.12

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.