ConnectKit
Code Kit is a block-based IDE from EduKits International that lets students and makers create Arduino firmware without writing code.
Project Overview
Code Kit is a block-based IDE from EduKits International that lets students and makers create Arduino firmware without writing code.
This demo shows how Code Kit’s ConnectKit library performs HTTP GET/POST requests. Instead of Wi-Fi, it uses a WIZnet W5500 shield for classrooms or exhibitions where wired links are more reliable.
Key Features
- No-code IoT – build network logic with drag-and-drop blocks.
- Stable wired Ethernet – W5500 handles TCP/IP in hardware, reducing packet loss.
- Instant debugging – live serial log and
Ethernet.linkStatus()feedback. - Multi-board support – works on Uno R3/R4, Mega 2560, Nano Every, etc.
Hardware Setup
Arduino 5 V/3 V3 ── W5500 VCC
Arduino GND ── W5500 GND
D13 (SCK) ── W5500 SCK
D12 (MISO) ── W5500 MISO
D11 (MOSI) ── W5500 MOSI
D10 (CS) ── W5500 CSPlug the on-board RJ-45 directly into a switch or router.
Software Implementation
#include <Ethernet.h>
#include <ConnectKit.h>
byte mac[] = { 0xDE,0xAD,0xBE,0xEF,0x00,0x01 };
EthernetClient net;
void setup() {
Serial.begin(9600);
Ethernet.init(10); // CS pin
Ethernet.begin(mac); // DHCP
Serial.println(Ethernet.localIP());
ConnectKit.begin(net); // hand Ethernet client to ConnectKit
ConnectKit.get("http://api.weather.com/data",
[](String body){ Serial.println(body); });
}
void loop() {
ConnectKit.update(); // non-blocking polling
}Code Kit generates equivalent C++ automatically and sends it to the Arduino IDE.
Network Architecture
[Code Kit Blocks] → ConnectKit API → Ethernet.h (SPI) → W5500 → LAN → REST ServerThe W5500 off-loads TCP/IP so the MCU can focus on application logic.
Performance Results
| Metric | Result |
|---|---|
| Ping RTT (100 Mbps switch) | 0.3 ms ± 0.05 |
| 5 kB JSON download | ≈ 4 ms |
| Loop() frequency vs. Wi-Fi | +19 % |
Lessons Learned
- Enabling W5500 DMA burst improves SPI read speed by ~20 %.
- Add a 3 s delay (or a static IP) after
Ethernet.begin()to avoid DHCP timeouts.
Future Improvements
- Add HTTPS support via MbedTLS.
- Create MQTT publish/subscribe blocks.
- Evaluate IPv6 with WIZnet W6100.
Challenges & Solutions
| Issue | Fix |
|---|---|
| Wi-Fi dropouts during uploads | Switched to wired W5500 Ethernet |
| SPI pin clash on Uno R4 WiFi | Re-mapped LCD CS; kept W5500 CS on D10 |
| Long DHCP delays | Added static-IP fallback |
DOCUMENTS
| Name | Link | Comment |
|---|---|---|
| Main Code | https://github.com/edukits/ConnectKit/examples/W5500_Demo | Example sketch generated by Code Kit |
| Circuit Diagram | https://github.com/edukits/ConnectKit/hardware/w5500_schematic.pdf | SPI wiring & RJ-45 layout |
| User Manual | https://docs.edukits.co/blocks/iot/ | Code Kit IoT block reference |
Closing Notes
This project combines the ease of Code Kit’s block coding with the robust networking of WIZnet W5500, letting anyone spin up reliable IoT prototypes in minutes. We hope the maker.wiznet.io community builds on this template and explores even more W5500-powered applications!
Project Q&A: ConnectKit
Q1. What is ConnectKit?
ConnectKit is a simple Arduino networking library designed to make IoT communication easier for learners, educators, and makers. It provides a small and friendly API for connecting Arduino-compatible boards to Wi-Fi or WIZnet Ethernet and sending HTTP requests without dealing with low-level networking details.
Q2. What problem does this project solve?
Many beginners find network programming difficult because they need to understand Wi-Fi setup, Ethernet initialization, HTTP formatting, headers, response handling, and error management. ConnectKit simplifies this process by hiding those details behind easy-to-use functions, allowing users to focus on building IoT applications rather than debugging network code.
Q3. What makes ConnectKit useful for educational IoT projects?
ConnectKit is especially useful in educational environments because it bridges block-based programming and Arduino code. Students can use Code Kit IoT blocks or Arduino sketches while relying on the same underlying networking library. This makes it easier to move from visual programming to text-based embedded development.
Q4. What network interfaces does ConnectKit support?
ConnectKit supports Wi-Fi on boards such as ESP8266, ESP32, and Arduino Uno R4 WiFi. It also supports wired Ethernet using WIZnet W5100, W5200, and W5500 SPI Ethernet hardware through the Arduino Ethernet library. In addition, custom network transports can be used if they implement Arduino’s standard Client API.
