- Added readSerial(Stream &stream) method to allow reading from any Stream-compatible transport. - Introduced readChar(char inChar) method for processing individual characters. - Updated command matching logic to enhance debugging output. - Improved buffer handling and command execution flow. Enhance platformio.ini for better compatibility and added libraries - Added NimBLE-Arduino and WebSockets libraries for BLE and WiFi support. - Updated upload and monitor ports for better compatibility with macOS. Integrate WiFi and BLE protocol interfaces - Implemented startWebInterface() to initialize WiFi protocol alongside existing web server. - Added BLE support with a new EggBot BLE Serial Protocol for command handling over BLE. - Created WebSocket server for WiFi communication, maintaining compatibility with existing command protocols. Refactor command handling in Functions.cpp - Replaced direct Serial.print calls with protocolWrite for consistent output handling. - Updated command registration to use a lambda function for better readability and maintainability. Add documentation for EggBot protocols - Created separate markdown files for BLE, WiFi, and Serial protocols detailing command structures and usage. - Provided examples of command transactions for better developer guidance. Implement BLE and WiFi protocol handling in respective source files - Developed BLE_Interface.cpp for managing BLE connections and data transmission. - Created WiFi_Protocol.cpp for handling WebSocket communication and data reception.
Eggduino
Arduino Firmware for Eggbot / Spherebot with Inkscape-Integration
Version 1.6a tested with Inkscape Portable 0.91, Eggbot Extension and patched eggbot.py
Regards: Eggduino-Firmware by Joachim Cerny, 2015
Thanks for the nice libs ACCELSTEPPER and SERIALCOMMAND, which made this project much easier. Thanks to the Eggbot-Team for such a funny and enjoyable concept! Thanks to my wife and my daughter for their patience. :-)
Features:
- Implemented Eggbot-Protocol-Version 2.1.0
- Turn-on homing: switch-on position of pen will be taken as reference point.
- No collision-detection!!
- Supported Servos: At least one type ;-) I use Arduino Servo-Lib with TG9e- standard servo.
- Full Arduino-Compatible. I used an Arduino Uno
- Button-support (3 buttons)
Tested and fully functional with Inkscape.
Installation:
-
Upload Eggduino.ino with Arduino-IDE or similar tool to your Arudino (i.e. Uno)
-
Disable Autoreset on Arduinoboard (there are several ways to do this... Which one does not matter...)
-
Install Inkscape Tools wit Eggbot extension. Detailed instructions: (You yust need to complete Steps 1 and 2) http://wiki.evilmadscientist.com/Installing_software
-
Because of an bug in the Eggbot-extension (Function findEiBotBoards()), the Eggduino cannot be detected by default. Hopefully, the guys will fix this later on. But we can fix it on our own. It is quiete easy:
- Go to your Inkscape-Installationfolder and navigate to subfolder .\App\Inkscape\share\extensions - open File "eggbot.py" in texteditor and search for line: "Try any devices which seem to have EBB boards attached" - comment that block with "#" like this: # Try any devices which seem to have EBB boards attached # for strComPort in eggbot_scan.findEiBotBoards(): # serialPort = self.testSerialPort( strComPort ) # if serialPort: # self.svgSerialPort = strComPort # return serialPort - In my version lines 1355-1360
Setup
Add credentials.h file with content like this:
const char *kWifiSsid = "MySSID";
const char *kWifiPassword = "MySecret";
To disable Wifi:
const char *kWifiSsid = 0;
const char *kWifiPassword = 0;