Comments (8)
Don't know why but this was it!! Yes!! Do you know a project like ConnoDMX that's works with eps_dmx v3?
from esp_dmx.
Thank you for the kind words!
Is there a particular reason you are using esp_dmx v1.1.3? If not, I would recommend that you update to the latest version, v3.1.0. That should make the errors disappear.
from esp_dmx.
I did, but it's the other way around, version 1.1.3 works, higher versions don't...
from esp_dmx.
I use Arduino IDE 2.2, installed ESP32 Wroom dev board.
I did, but it's the other way around, version 1.1.3 works, higher versions don't...
I see. Can you confirm which version of Arduino-ESP32 you are using? You should be using v2.0.3 or higher. I see that you are using IDE v2.2, but I'm specifically referring to the Arduino-ESP32 framework, not the IDE. You can verify this by checking the Boards Manager on the Arduino IDE and searching esp32
to find "esp32 by Espressif Systems." I am currently using v2.0.14 without any issues.
from esp_dmx.
I've version 2.0.14 too... I've used this link in the Additional Board Manager URLs field: https://espressif.github.io/arduino-esp32/package_esp32_index.json
From the json file:
"boards": [ { "name": "ESP32 Dev Board" }, { "name": "ESP32-S2 Dev Board" }, { "name": "ESP32-S3 Dev Board" }, { "name": "ESP32-C3 Dev Board" }, { "name": "Arduino Nano ESP32" } ],
Should I see those names as boards in the board library? Because I don't... all kinds of esp32 boards, but not with these names.
I've tested it again, with your dmxwrite example. ESP_DMX version 3.1.0. This is the error log:
from esp_dmx.
`C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:121:14: error: 'DMX_MAX_PACKET_SIZE' was not declared in this scope
byte dataOut[DMX_MAX_PACKET_SIZE];
^~~~~~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:121:14: note: suggested alternative: 'ETH_MAX_PACKET_SIZE'
byte dataOut[DMX_MAX_PACKET_SIZE];
^~~~~~~~~~~~~~~~~~~
ETH_MAX_PACKET_SIZE
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:122:13: error: 'DMX_MAX_PACKET_SIZE' was not declared in this scope
byte dataIn[DMX_MAX_PACKET_SIZE];
^~~~~~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:122:13: note: suggested alternative: 'ETH_MAX_PACKET_SIZE'
byte dataIn[DMX_MAX_PACKET_SIZE];
^~~~~~~~~~~~~~~~~~~
ETH_MAX_PACKET_SIZE
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino: In function 'void initDMXIn()':
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:302:30: error: 'DMX_DEFAULT_CONFIG' was not declared in this scope
dmx_config_t dmxInConfig = DMX_DEFAULT_CONFIG;
^~~~~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:302:30: note: suggested alternative: 'ETH_DEFAULT_CONFIG'
dmx_config_t dmxInConfig = DMX_DEFAULT_CONFIG;
^~~~~~~~~~~~~~~~~~
ETH_DEFAULT_CONFIG
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:303:3: error: 'dmx_param_config' was not declared in this scope
dmx_param_config(dmxInPort, &dmxInConfig);
^~~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:303:3: note: suggested alternative: 'dmxInConfig'
dmx_param_config(dmxInPort, &dmxInConfig);
^~~~~~~~~~~~~~~~
dmxInConfig
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:314:33: error: 'DMX_MAX_PACKET_SIZE' was not declared in this scope
dmx_driver_install(dmxInPort, DMX_MAX_PACKET_SIZE, queueSize, &queue, interruptPriority);
^~~~~~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:314:33: note: suggested alternative: 'ETH_MAX_PACKET_SIZE'
dmx_driver_install(dmxInPort, DMX_MAX_PACKET_SIZE, queueSize, &queue, interruptPriority);
^~~~~~~~~~~~~~~~~~~
ETH_MAX_PACKET_SIZE
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino: In function 'void initDMXOut()':
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:320:31: error: 'DMX_DEFAULT_CONFIG' was not declared in this scope
dmx_config_t dmxOutConfig = DMX_DEFAULT_CONFIG;
^~~~~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:320:31: note: suggested alternative: 'ETH_DEFAULT_CONFIG'
dmx_config_t dmxOutConfig = DMX_DEFAULT_CONFIG;
^~~~~~~~~~~~~~~~~~
ETH_DEFAULT_CONFIG
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:321:3: error: 'dmx_param_config' was not declared in this scope
dmx_param_config(dmxOutPort, &dmxOutConfig);
^~~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:321:3: note: suggested alternative: 'dmxOutConfig'
dmx_param_config(dmxOutPort, &dmxOutConfig);
^~~~~~~~~~~~~~~~
dmxOutConfig
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:332:34: error: 'DMX_MAX_PACKET_SIZE' was not declared in this scope
dmx_driver_install(dmxOutPort, DMX_MAX_PACKET_SIZE, queueSize, NULL, interruptPriority);
^~~~~~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:332:34: note: suggested alternative: 'ETH_MAX_PACKET_SIZE'
dmx_driver_install(dmxOutPort, DMX_MAX_PACKET_SIZE, queueSize, NULL, interruptPriority);
^~~~~~~~~~~~~~~~~~~
ETH_MAX_PACKET_SIZE
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:337:28: error: 'DMX_MODE_TX' was not declared in this scope
dmx_set_mode(dmxOutPort, DMX_MODE_TX);
^~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:337:28: note: suggested alternative: 'WIFI_MODE_MAX'
dmx_set_mode(dmxOutPort, DMX_MODE_TX);
^~~~~~~~~~~
WIFI_MODE_MAX
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:337:3: error: 'dmx_set_mode' was not declared in this scope
dmx_set_mode(dmxOutPort, DMX_MODE_TX);
^~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:337:3: note: suggested alternative: 'dmx_set_pin'
dmx_set_mode(dmxOutPort, DMX_MODE_TX);
^~~~~~~~~~~~
dmx_set_pin
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:338:3: error: 'dataOut' was not declared in this scope
dataOut[0] = 0;
^~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino: In function 'void onArtNetFrame(uint16_t, uint16_t, uint8_t, uint8_t*)':
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:345:47: error: 'DMX_MAX_PACKET_SIZE' was not declared in this scope
for (int i = 1; i < numberOfChannels && i < DMX_MAX_PACKET_SIZE; ++i) {
^~~~~~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:345:47: note: suggested alternative: 'ETH_MAX_PACKET_SIZE'
for (int i = 1; i < numberOfChannels && i < DMX_MAX_PACKET_SIZE; ++i) {
^~~~~~~~~~~~~~~~~~~
ETH_MAX_PACKET_SIZE
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:346:5: error: 'dataOut' was not declared in this scope
dataOut[i] = dmxData[i - 1];
^~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:349:153: error: 'dataOut' was not declared in this scope
Serial.printf("<< ArtNet Uni %u Seq %03u Chans %u => DMX: %03d - %03d %03d %03d %03d - %03d %03d %03d %03d \n", universe, sequence, numberOfChannels, dataOut[0], dataOut[1], dataOut[2], dataOut[3], dataOut[4], dataOut[5], dataOut[6], dataOut[7], dataOut[8]);
^~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:362:41: error: 'DMX_MAX_PACKET_SIZE' was not declared in this scope
dmx_write_packet(dmxOutPort, dataOut, DMX_MAX_PACKET_SIZE);
^~~~~~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:362:41: note: suggested alternative: 'ETH_MAX_PACKET_SIZE'
dmx_write_packet(dmxOutPort, dataOut, DMX_MAX_PACKET_SIZE);
^~~~~~~~~~~~~~~~~~~
ETH_MAX_PACKET_SIZE
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:362:3: error: 'dmx_write_packet' was not declared in this scope
dmx_write_packet(dmxOutPort, dataOut, DMX_MAX_PACKET_SIZE);
^~~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:362:3: note: suggested alternative: 'dmx_write_offset'
dmx_write_packet(dmxOutPort, dataOut, DMX_MAX_PACKET_SIZE);
^~~~~~~~~~~~~~~~
dmx_write_offset
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:363:3: error: 'dmx_tx_packet' was not declared in this scope
dmx_tx_packet(dmxOutPort);
^~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:363:3: note: suggested alternative: 'dmx_packet_t'
dmx_tx_packet(dmxOutPort);
^~~~~~~~~~~~~
dmx_packet_t
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:364:32: error: 'DMX_TX_PACKET_TOUT_TICK' was not declared in this scope
dmx_wait_tx_done(dmxOutPort, DMX_TX_PACKET_TOUT_TICK);
^~~~~~~~~~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:364:32: note: suggested alternative: 'DMX_TIMEOUT_TICK'
dmx_wait_tx_done(dmxOutPort, DMX_TX_PACKET_TOUT_TICK);
^~~~~~~~~~~~~~~~~~~~~~~
DMX_TIMEOUT_TICK
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:364:3: error: 'dmx_wait_tx_done' was not declared in this scope
dmx_wait_tx_done(dmxOutPort, DMX_TX_PACKET_TOUT_TICK);
^~~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:364:3: note: suggested alternative: 'dmx_wait_sent'
dmx_wait_tx_done(dmxOutPort, DMX_TX_PACKET_TOUT_TICK);
^~~~~~~~~~~~~~~~
dmx_wait_sent
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino: In function 'void dmxInLoop()':
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:370:3: error: 'dmx_event_t' was not declared in this scope
dmx_event_t packet;
^~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:370:3: note: suggested alternative: 'eth_event_t'
dmx_event_t packet;
^~~~~~~~~~~
eth_event_t
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:376:29: error: 'packet' was not declared in this scope
if (xQueueReceive(queue, &packet, DMX_RX_TIMEOUT)) {
^~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:376:29: note: suggested alternative: 'pause'
if (xQueueReceive(queue, &packet, DMX_RX_TIMEOUT)) {
^~~~~~
pause
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:393:34: error: 'dataIn' was not declared in this scope
dmx_read_packet(dmxInPort, dataIn, packet.size);
^~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:393:34: note: suggested alternative: 'atan'
dmx_read_packet(dmxInPort, dataIn, packet.size);
^~~~~~
atan
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:393:7: error: 'dmx_read_packet' was not declared in this scope
dmx_read_packet(dmxInPort, dataIn, packet.size);
^~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:393:7: note: suggested alternative: 'dmx_read_offset'
dmx_read_packet(dmxInPort, dataIn, packet.size);
^~~~~~~~~~~~~~~
dmx_read_offset
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:397:46: error: 'DMX_MAX_PACKET_SIZE' was not declared in this scope
dmx_write_packet(dmxOutPort, dataIn, DMX_MAX_PACKET_SIZE);
^~~~~~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:397:46: note: suggested alternative: 'ETH_MAX_PACKET_SIZE'
dmx_write_packet(dmxOutPort, dataIn, DMX_MAX_PACKET_SIZE);
^~~~~~~~~~~~~~~~~~~
ETH_MAX_PACKET_SIZE
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:397:9: error: 'dmx_write_packet' was not declared in this scope
dmx_write_packet(dmxOutPort, dataIn, DMX_MAX_PACKET_SIZE);
^~~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:397:9: note: suggested alternative: 'dmx_write_offset'
dmx_write_packet(dmxOutPort, dataIn, DMX_MAX_PACKET_SIZE);
^~~~~~~~~~~~~~~~
dmx_write_offset
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:398:9: error: 'dmx_tx_packet' was not declared in this scope
dmx_tx_packet(dmxOutPort);
^~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:398:9: note: suggested alternative: 'dmx_packet_t'
dmx_tx_packet(dmxOutPort);
^~~~~~~~~~~~~
dmx_packet_t
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:399:38: error: 'DMX_TX_PACKET_TOUT_TICK' was not declared in this scope
dmx_wait_tx_done(dmxOutPort, DMX_TX_PACKET_TOUT_TICK);
^~~~~~~~~~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:399:38: note: suggested alternative: 'DMX_TIMEOUT_TICK'
dmx_wait_tx_done(dmxOutPort, DMX_TX_PACKET_TOUT_TICK);
^~~~~~~~~~~~~~~~~~~~~~~
DMX_TIMEOUT_TICK
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:399:9: error: 'dmx_wait_tx_done' was not declared in this scope
dmx_wait_tx_done(dmxOutPort, DMX_TX_PACKET_TOUT_TICK);
^~~~~~~~~~~~~~~~
C:\Users\marti\OneDrive\Documenten\Arduino\projects\ESP32_ArtNet_DMX_Gateway\ESP32_ArtNet_DMX_Gateway.ino:399:9: note: suggested alternative: 'dmx_wait_sent'
dmx_wait_tx_done(dmxOutPort, DMX_TX_PACKET_TOUT_TICK);
^~~~~~~~~~~~~~~~
dmx_wait_sent
exit status 1
Compilation error: 'DMX_MAX_PACKET_SIZE' was not declared in this scope`
from esp_dmx.
Oh, I think I see the issue. The constants in that error message are no longer valid. I think somehow the examples you are using are the examples for the v1 or v2 library. v3 is not compatible with v1 or v2.
Here is the link to the v3 DMX Write example. I just tested this code on Arduino and it compiled for me.
from esp_dmx.
That's great to hear!
I just released v3, so I am not aware of any other projects currently using it.
from esp_dmx.
Related Issues (20)
- DMX Read - Unstable packet.size depends on the number of DMX channels HOT 3
- compiling error with 3.10 but not with 3.0.3-beta HOT 3
- Bug string constant to 'char*' [-Wwrite-strings] HOT 2
- Send SET RDM_PID_IDENTIFY_DEVICE argument error
- RDM controller requests are not copying parameter data HOT 2
- dmx_get_personality_description() does not work HOT 1
- ESP32-S3 RDM issues with UART0 HOT 5
- Start Address Not Saving Via RDM HOT 8
- Compile Warning
- Problem with installing DMX on UART2 HOT 11
- Could not find any RDM capable devices HOT 1
- Stability Issue with BLE and UART
- ESP32 DMX Libary packet size read problem HOT 4
- Is it possible to receive dmx on one uart and copy/write it on another uart ? HOT 3
- Multiple Universes on a ESP32 Dev HOT 14
- esp32c6 Not working HOT 2
- RDM M5Stack reboot at discovery
- Compile Error ESP32 HOT 3
- Could not get address of DMX & RDM led drivers while using wifi HOT 1
- Guru Meditation Error: Core 1 panic'ed (Interrupt wdt timeout on CPU1). HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from esp_dmx.