sqfmi / badgy Goto Github PK
View Code? Open in Web Editor NEWHome of Badgy - IoT Badge
Home Page: http://badgy.sqfmi.com
License: MIT License
Home of Badgy - IoT Badge
Home Page: http://badgy.sqfmi.com
License: MIT License
I have not exhausted all attempts yet, however I am getting a failure to build with weather.ino example. It seems to be complaining most about the GxEPD lib. Any chance I am missing something?
Hello,
my Badgy Rev 2B does not reset itself after successfully flashing it via the Arduino IDE through USB. The upload log reads "Hard resetting via RTS pin..." but the display will remain in the state it was in during upload unless I either toggle the on/off switch or I powercycle the badge by unplugging and plugging the USB cable.
The behavior is the same with all example sketches as well as my own test sketches down to the very basics of simply displaying a text without any Wifi capability.
"Reset Method" is set to "ck", but neither of the other available options changes the behavior.
What do I have to do to make Badgy reset itself upon successful upload via the Arduino IDE?
ive got this issue withing compiling
Is badgy supported by esphome? Does anyone have config files if so?
@chunkysteveo you tagged a post with esphome
here
The waveshare eink displays seem similar and closest, but different enough it seemed worth asking.
(Rev 2A if it matters)
Got the new Rev 2B board the other day, but I was sick so I didn't get to tinker right away. Pulled it out earlier today and, upon uploading the hello example (slightly modified with my initials instead), I realized that the screen was misaligned. Even the "Badgy AP" screen seems to be misaligned.
I'm new to... well, all of this, so I apologize if my description isn't quite apt. Is there a simple solution that I'm just completely unaware of?
Thanks!
Hi,
When I apply USB power to the Badgy a blue LED lights up (not the LED on the ESP8266). I have seen before that after a while the blue LED blinks but recently is only fades and it seems the battery is not charged ...
What is the LED supposed to do?
What is the information it gives when on, off, blinking, and faded?
Same here #8
Rev 2c was able connect, to wifi network, I can see ESP_AC9D8A as a connected device in the router connected list.
however badgy seems to be going in loop with it blinking from "Hello badgy" and a blank screen.
http://YOUR_IP_ADDRESS:8888/update command does not do anything.
I cannot find any documentation on the specs for formatting images for badgy other than using the xbm format. Things that I tried won't compile. Badgy is great; but, I'd like it to display more than "Hello my names is Badgy." I believe it would be a good service if some more documentation were available on hacking the files.
I'm trying to debug my program (badgy connected with USB), so I'm using this in setup()
method:
Serial.begin(115200);
Serial.println("Setup");
display.init(115200);
But nothing is showing in terminal (only unreadable characters on boot).
Is Serial supported? Is speed 115200 okay? I've tried 9600 as well, but the same result.
When I open Tools -> Serial monitor (in Arduino IDE), badgy does not restart (as other devices do).
I'm using latest revision 2C.
Thanks.
I wanted to put my badgy in a nice 3d printed casing. Does anyone have a fitting 3d model?
Hi, the weather sketch is broken. Forecast request dies with a json parsing error. Not sure where the problem is...tried and failed to figure it out. Best I could tell it looks like stuff is left in the buffer after the first current conditions call. Also setting imperial units does not change the conversions or the displayed units deeper in the code, which makes setting the constant somewhat pointless:
259 display.print(String((int)(wind*3.6))+"km/h");
268 display.println(String((int)current_temp) + "C");
I got the board working just fine out of the box. I downloaded all the files needed to run "Hello". I compiled it and uploaded it just fine.
But now the board will not return to OTA mode. I shut it off, press and hold the center button, turn on the board, and nothing happens. The edisplay still shows the "Hello my name is..." graphic.
I have tried this while powering the board via USB from my laptop, and via USB from a fully charged power brick. When I flip the board's switch to ON, a red LED at the center of the lower edge of the reverse side of the board blinks about once every 7 seconds, in sync with the blue LED on the ESP32. That's all that happens.
When I flip the switch to OFF, the red LED at the center of the lower edge of the reverse side of the board blinks about 5 times per second. THe blue light does not blink at all.
I have tried multiple USB cables and power sources. Nothing works to put the board into OTA mode.
I do not have the skills to solder connectors to the board. What can I do?
readme.md
- Section on Updating over USB.
Shouldn't line 30 and 31's mention of "CP2014" be "CP2104"?
(It seemed like in SiLabs documentation it was 2104 or 210x, rather than 2014).
Set up badgy on USB power, things behave as expected. Board LED glows flickers blue. Board boots up.
Popped a LIR2450 in with no USB connection and... nothing. Won't wake up, won't reset for new sketches, no LEDs glowing.
Pop in USB with LIR2450 in place, board LED glows bright blue (charging?) and board functions.
Any suggestions as to trouble shooting this?
I am unable to connect to Badgy on a MacBook Pro via USB. I was able to connect and program it with the Hello sketch from the repo via WiFi, once, after which it doesn't respond to WiFi, either. So I need USB programming to recover from that. I've tried several ports and several cables and installed some additional drivers suggested in various forums, but so far it's not recognized as a serial device on USB. Any suggestions?
Hi. I have the original Badgy and just dusted it off to try to get it working (haven't used it for a long time). It was working and was able to access it via OTA. However, after uploading the below sketch, it does not show weather and no longer accesses OTA. I can confirm power on the unit. I try to ping it at 192.168.2.141:8888 and get nothing. Sadly, I only noticed this after uploading - The first few lines suggest different libraries depending on version, so I am wondering if I've bricked it? I used #include <GxGDEW029T5/GxGDEW029T5.h> vs #include <GxGDEH029A1/GxGDEH029A1.h>. Is there a way to recover from this via OTA, or do I have to solder connections to the breakout pins to upload a new sketch?
`/* e-paper display lib /
#include <GxEPD.h>
//Use the GxGDEW029T5 class if you have Badgy Rev 2C. Make sure you are on GxEPD 3.05 or above
#include <GxGDEW029T5/GxGDEW029T5.h>
//Use the GxGDEH029A1 class if you have anything older
//#include <GxGDEH029A1/GxGDEH029A1.h>
#include <GxIO/GxIO_SPI/GxIO_SPI.h>
#include <GxIO/GxIO.h>
/ include any other fonts you want to use https://github.com/adafruit/Adafruit-GFX-Library /
#include <Fonts/FreeMonoBold9pt7b.h>
#include <Fonts/FreeMonoBold18pt7b.h>
#include "icons.h"
/ WiFi libs*/
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <ESP8266HTTPUpdateServer.h>
#include <WiFiManager.h>
/* Util libs */
#include <Time.h>
#include <TimeLib.h>
#include <ArduinoJson.h>
const char* host = "api.openweathermap.org";
const char* API_KEY = "REMOVED"; //Your API key https://home.openweathermap.org/
const char* CITY_ID = "6167865"; //City ID https://openweathermap.org/find
const int time_zone = -5; // e.g. UTC-05:00 = -5
const boolean IS_METRIC_UNITS = true;
/* Always include the update server, or else you won't be able to do OTA updates! /
//const int port = 8888;
//ESP8266WebServer httpServer(port);
/**/ESP8266HTTPUpdateServer httpUpdater;
/ */
/* Configure pins for display */
GxIO_Class io(SPI, SS, 0, 2);
GxEPD_Class display(io); // default selection of D4, D2
void setup()
{
display.init();
pinMode(1,INPUT_PULLUP); //down
pinMode(3,INPUT_PULLUP); //left
pinMode(5,INPUT_PULLUP); //center
pinMode(12,INPUT_PULLUP); //right
pinMode(10,INPUT_PULLUP); //up
/* WiFi Manager automatically connects using the saved credentials, if that fails it will go into AP mode */
WiFiManager wifiManager;
wifiManager.setAPCallback(configModeCallback);
wifiManager.autoConnect("Badgy AP");
if(digitalRead(5) == 0) {
/* Once connected to WiFi, startup the OTA update server if the center button is held on boot */
httpUpdater.setup(&httpServer);
httpServer.begin();
showIP();
while(1){
httpServer.handleClient();
}
}
if (getWeatherData() && getForecastData()) {
// Success in getting weather an forecast data. Sleep for an 3600e6 microseconds -- an hour.
ESP.deepSleep(3600e6, WAKE_RF_DEFAULT);
} else {
// A failure of some sort. Wait for 5 seconds and then retry.
ESP.deepSleep(5e6, WAKE_RF_DEFAULT);
}
}
void loop()
{
// loop is never executed in this program as the setup does all the work
// then puts the ESP into a deep sleep which will cause a reset at the
// conclusion which runs setup again.
}
void configModeCallback (WiFiManager myWiFiManager){
display.setRotation(3); //even = portrait, odd = landscape
display.fillScreen(GxEPD_WHITE);
const GFXfont f = &FreeMonoBold9pt7b ;
display.setTextColor(GxEPD_BLACK);
display.setFont(f);
display.setCursor(0,50);
display.println("Connect to Badgy AP");
display.println("to setup your WiFi!");
display.update();
}
void showText(char text)
{
display.setRotation(3); //even = portrait, odd = landscape
display.fillScreen(GxEPD_WHITE);
const GFXfont f = &FreeMonoBold9pt7b ;
display.setTextColor(GxEPD_BLACK);
display.setFont(f);
display.setCursor(10,70);
display.println(text);
display.println("Auto-retry in 5 seconds.");
display.update();
}
void showIP(){
display.setRotation(3); //even = portrait, odd = landscape
display.fillScreen(GxEPD_WHITE);
const GFXfont* f = &FreeMonoBold9pt7b ;
display.setTextColor(GxEPD_BLACK);
display.setFont(f);
display.setCursor(0,10);
String url = WiFi.localIP().toString() + ":"+String(port)+"/update";
byte charArraySize = url.length() + 1;
char urlCharArray[charArraySize];
url.toCharArray(urlCharArray, charArraySize);
display.println("You are now connected!");
display.println("");
display.println("Go to:");
display.println(urlCharArray);
display.println("to upload a new sketch.");
display.update();
}
bool getWeatherData()
{
String type= "weather";
String url = "/data/2.5/"+type+"?id="+CITY_ID+"&units="+getUnitsString()+"&appid="+API_KEY;
// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
showText("connection failed");
return false;
}
// This will send the request to the server
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
showText(">>> Client Timeout !");
client.stop();
return false;
}
}
// Read response
String city;
float current_temp;
int humidity;
float temp_min;
float temp_max;
float wind;
String icon_code;
int condition;
int time;
while(client.available()){
char status[32] = {0};
client.readBytesUntil('\r', status, sizeof(status));
//Serial.println(status);
if(strcmp(status, "HTTP/1.1 200 OK") != 0){
showText("HTTP Status Error!");
return false;
}
/* Find the end of headers */
char endOfHeaders[] = "\r\n\r\n";
if (!client.find(endOfHeaders)) {
showText("Invalid Response...");
return false;
}
/* Start parsing the JSON in the response body */
//DynamicJsonBuffer jsonBuffer;
//JsonObject& root = jsonBuffer.parseObject(client);
//if(!root.success()){
// showText("JSON parsing failed!");
// return false;
//}
DynamicJsonDocument jsonDoc(4096);
DeserializationError error = deserializeJson(jsonDoc, client);
if (error)
{
showText("JSON parsing failed!");
return false;
}
city = jsonDoc["name"].as<String>();
current_temp = jsonDoc["main"]["temp"];
humidity = jsonDoc["main"]["humidity"];
temp_min = jsonDoc["main"]["temp_min"];
temp_max = jsonDoc["main"]["temp_max"];
wind = jsonDoc["wind"]["speed"];
icon_code = jsonDoc["weather"][0]["icon"].as<String>();
condition = jsonDoc["weather"][0]["id"];
time = jsonDoc["dt"]; //time data was collected
}
time = time + (time_zone6060); //calculate time based on time zone
setTime(time);
/* Get icon for weather condition /
const unsigned char icon;
icon = getIcon(condition, icon_code, false);
/ Display weather conditions /
display.setRotation(3); //even = portrait, odd = landscape
display.fillScreen(GxEPD_WHITE);
display.drawBitmap(icon, -5, 5, 80, 80, GxEPD_WHITE);
const GFXfont small = &FreeMonoBold9pt7b;
display.setTextColor(GxEPD_BLACK);
display.setFont(small);
//display.setCursor(10,11);
//display.println(city);
//Current Date (actually date of last update)
display.setCursor(120,11);
display.print(dayShortStr(weekday()));
display.print(" ");
display.print(monthShortStr(month()));
display.print(" ");
display.print(day());
display.print(" ");
display.print(year());
//Current Wind
display.drawBitmap(strong_wind_small, 0, 62, 48, 48, GxEPD_WHITE);
display.setCursor(50,92);
if (IS_METRIC_UNITS) {
display.print(String((int)(wind3.6))+"km/h");
} else {
display.print(String((int)wind)+" mph");
}
//Current Humidity
display.drawBitmap(humidity_small, 0, 97, 32, 32, GxEPD_WHITE);
display.setCursor(50,119);
display.print(String(humidity)+"%");
//Current Temp
display.setCursor(72,55);
const GFXfont* big = &FreeMonoBold18pt7b;
display.setFont(big);
if (IS_METRIC_UNITS) {
display.println(String((int)current_temp) + "C");
} else {
display.println(String((int)current_temp) + "F");
}
display.update();
return true;
}
String getUnitsString() {
if (IS_METRIC_UNITS) {
return "metric";
} else {
return "imperial";
}
}
bool getForecastData()
{
String type= "forecast";
String url = "/data/2.5/"+type+"?id="+CITY_ID+"&units="+getUnitsString()+"&appid="+API_KEY;
// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
showText("connection failed");
return false;
}
// This will send the request to the server
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
showText(">>> Client Timeout !");
client.stop();
return false;
}
}
// Read response
while(client.available()){
char status[32] = {0};
client.readBytesUntil('\r', status, sizeof(status));
//Serial.println(status);
if(strcmp(status, "HTTP/1.1 200 OK") != 0){
showText("HTTP Status Error!");
return false;
}
/* Find the end of headers */
char endOfHeaders[] = "\r\n\r\n";
if (!client.find(endOfHeaders)) {
showText("Invalid Response...");
return false;
}
/* Start parsing the JSON in the response body */
//DynamicJsonBuffer jsonBuffer;
//JsonObject& root = jsonBuffer.parseObject(client);
//if(!root.success()){
// showText("JSON parsing failed!");
// return false;
//}
DynamicJsonDocument jsonDoc(4096);
DeserializationError error = deserializeJson(jsonDoc, client);
if (error)
{
showText("JSON parsing failed!");
return false;
}
/* Forecast returns weather data every 3 hours for the next 5 days, we only want the next 3 days for every 24 hours*/
for(int i=1; i<=3; i++){
int condition= jsonDoc["list"][char(i*8)]["weather"][0]["id"];
int temp = jsonDoc["list"][char(i*8)]["main"]["temp"];
String icon_code= jsonDoc["list"][char(i*8)]["weather"][0]["icon"];
int offset = 100; //x offset for forecast block
const unsigned char *icon;
icon = getIcon(condition, icon_code, true);
display.drawBitmap(icon, (offset+(i*48)), 58, 48, 48, GxEPD_WHITE); //(icon, pos_x, pos_y, size_x, size_y, bg)
int time = jsonDoc["list"][char(i*8)]["dt"];
time = time + (time_zone*60*60);
setTime(time);
//Day of Week
const GFXfont* small = &FreeMonoBold9pt7b;
display.setTextColor(GxEPD_BLACK);
display.setFont(small);
display.setCursor((offset+7+(i*48)),58);
display.print(dayShortStr(weekday()));
//Forecasted temperature
display.setCursor((offset+10+(i*48)),115);
display.print(String(temp));
}
display.update();
}
return true;
}
const unsigned char * getIcon(int condition, String icon_code, bool small)
{
if(condition <= 232){
return small ? thunderstorm_small : thunderstorm;
}else if(condition >= 300 && condition <= 321){
return small ? showers_small : showers;
}else if(condition >= 500 && condition <= 531){
return small ? rain_small : rain;
}else if(condition >= 600 && condition <= 602){
return small ? snow_small : snow;
}else if(condition >= 611 && condition <= 612){
return small ? sleet_small : sleet;
}else if(condition >= 615 && condition <= 622){
return small ? rain_mix_small : rain_mix;
}else if(condition == 701 || condition == 721 || condition == 741){
return small ? fog_small : fog;
}else if(condition == 711){
return small ? smoke_small : smoke;
}else if(condition == 731){
return small ? sandstorm_small : sandstorm;
}else if(condition == 751 || condition == 761){
return small ? dust_small : dust;
}else if(condition == 762){
return small ? volcano_small : volcano;
}else if(condition == 771){
return small ? strong_wind_small : strong_wind;
}else if(condition == 781){
return small ? tornado : tornado_small;
}else if(condition == 800){
if(icon_code == "01d"){
return small ? day_sunny_small : day_sunny;
}else{
return small ? night_clear_small : night_clear;
}
}else if(condition == 801 || condition == 802){
if(icon_code == "02d" || icon_code == "03d"){
return small ? day_cloudy_small : day_cloudy;
}else{
return small ? night_cloudy_small : night_cloudy;
}
}else if(condition == 803 || condition == 804){
if(icon_code == "04d"){
return small ? cloudy_small : cloudy;
}else{
return small ? night_cloudy_small : night_cloudy;
}
}
return day_cloudy_small;
}`
I have the LIR2450 loaded in the badgy, and when I plug the USB, I see a red light in the back.
I am wondering if the badgy is able to charge the battery because when I remove the USB after a few hours, the badgy does not seem to work on battery.
Is it possible (with minor modifications, if needed) to measure the voltage of the battery?
Hello, I bought 5 Badgys on Tindie.
I uploaded some tests OTA on the badgies, When I tried the weather, 2 of them froze, and when I restarted a 3rd one, it froze also (it had the websocketdraw on it).
Now, I am trying to upload using FTDI, it uploads well (Blinking led, and 100% status), but still stays frozen to the last state when it stopped working.
I jumped 0 and gnd as per your chart. and left rest in the air as per your rst => NC instruction.
What do you think goes wrong? I am uploading the Badgy, and hello INO, but I cannot get it to show on the screen when i plug it back
The only one that keeps on working is the hourly quote, but I do not dare changing anything in the code, nor developing with Badgy until I can get it to work without OTA
I just received the new 2B model and started setting it up.
The first thing I see is that it has a bad solder joint on the mini-USB connector. I have to hold it at an angle to force it to connect to the circuit board... - very unpleasant for long sessions...
I was able to set it up to my local WIFI environment and proceeded to play with the examples.
I modified 'hello' to use my name, and verified and compiled it without issue.
But when I load it to the Badgy, with either WIFI or USB, it completes and informs me that Badgy is restarting. But nothing happens after that - the ink display remains with the connected for update image. Power cycling does nothing (other than letting me restart the OTA process if I want). I tried reloading the base version of 'hello' with the same end results.
Any suggestions?
What epaper display is it? I can't see it in the BOM. The waveshare 2.9"?
Is there any way to wake Badgy up by using the switch, when using ESP.deepSleep()?
Like if I want the HourlyQuote-example to also update when I press the button. :)
Hi,
after setup of the board in the Arduino IDE the board settings got populated with what looks like defaults. Some of the defaults seem wrong, like the Flash size of 512k (no SPIFFS). During upload the correct flash size of 4MB seems to be negotiated, and the upload works fine, but this made me start wondering what else might not be on the correct setting. I'd like to set up Badgy as well as I can. By playing around with them though I nearly bricked my badge and was very lucky that it recovered to a state in which it would accept new firmware with the reverted settings.
Here's a screenshot of the default settings. Can anyone provide the "correct" settings tailored for Badgy or are these already the best they can be?
In the badgy example it says to include the library from https://github.com/ZinggJM/GxEPD. All the other libraries we need to include have zip bundled releases, but GxEPD doesn't. How do we install GxEPD w/o using a .zip file?
Can we use the Adafruit EPD by Adafruit (v1.0.1) library that's findable via the Library Manager instead?
The project is amazing, I really like it.
But I don't see on pictures how it is supposed to be fixed.
Any holes usable?
Hi, not sure why there is no "new issues" on badgy-python so I'll open the issue here.
Is "epaper2in9.py" working with the latest revision of badgy?
There is an updated "greyscale" demo available also for micropython?
Thanks.
I followed the steps under badgy-python and everything worked fine except the photo is broken. I used Image-to-cpp to convert the file. Here is the original and the result on badgy. By the way, this is the best result that I randomely got! the image is usually worse. I'll try to upload more photos.
I used the sample python example and I'm sure the python binary representation of my image is correct.
Any ideas?
Hey,
I just received my Badgy Rev 2C a few days ago. I tried to modify the "Hello" sketch but had issues uploading it onto the device. The connection was somewhat unreliable so I had to restart the process a few times until it worked. I noticed that the Badgy sometimes rapidly restarted itself (the display turned white and then the content appeared again) while the Arduino IDE tried to start flashing.
However after one failed attempt to flash a new program it seems like the Badgy is no longer booting at all. The screen doesn't change any more and I am unable to get into the web flash mode, which is still part of the sketch.
When turning the device on I see this:
ets Jan 8 2013,rst cause:2, boot mode:(3,7)
ets_main.c
in the serial monitor. No further output occurs.
Flashing a new sketch seems impossible, as the process stops with esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
.
I also tried using a different cable and a different computer but that did not solve the issue. Any idea what could be wrong here?
Hi,
I receive my badgy today :)
but i can't test examples, hello or weather
(test on three computer)
because there is a problem with GxEPD-master library:
Arduino : 1.8.7 (Windows 7), Carte : "NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, 4M (1M SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"
libraries\GxEPD-master\GxGDEH029A1\GxGDEH029A1.cpp.o: In function `GxGDEH029A1::fillScreen(unsigned short)':
C:\Users\Fabian\Documents\Arduino\libraries\GxEPD-master\src\GxGDEH029A1/GxGDEH029A1.cpp:113: multiple definition of `GxGDEH029A1::fillScreen(unsigned short)'
.......
compil.txt
I need a little help
Thks
Hi there,
I just realized I did something stupid by calling some function directly from setup() that ends with the sequence below and now I'm unable to flash a new sketch
delay(1000);
ESP.deepSleep(1 - 1000000UL);
I noticed this in the README:
Note that if the ESP chip is in a deep sleep then it will not automatically respond to the upload request and you may see something like "error: espcomm open failed" when trying to upload. A manual restart of the ESP chip, using the power slide button, just prior to upload gives you a small window of time to upload.
I was trying everything, switching the button, run the flash command using esptool in a loop and connecting the badgy while it runs. Nothing I did allowed me to re-flash it.
My attempts will always end with:
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
I suspect that at some point the esptool failed to flash the firmware to the ESP-12F chip and it causes the fail at boot.
Any chance this would help?
I am getting errors and failure to compile, any suggestions?
Arduino: 1.8.10 (Mac OS X), Board: "Generic ESP8266 Module, 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), dtr (aka nodemcu), 26 MHz, 40MHz, DOUT (compatible), 1MB (FS:64KB OTA:~470KB), 2, nonos-sdk 2.2.1+100 (190703), v2 Lower Memory, Disabled, None, Only Sketch, 115200"
Multiple libraries were found for "DNSServer.h"
Used: /Users/mattpackwood/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.2/libraries/DNSServer
Multiple libraries were found for "ESP8266WebServer.h"
Used: /Users/mattpackwood/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.2/libraries/ESP8266WebServer
Multiple libraries were found for "ESP8266HTTPUpdateServer.h"
Used: /Users/mattpackwood/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.2/libraries/ESP8266HTTPUpdateServer
Multiple libraries were found for "WiFiManager.h"
Used: /Users/mattpackwood/Documents/Arduino/libraries/WiFiManager
Multiple libraries were found for "GxEPD.h"
Used: /Users/mattpackwood/Documents/Arduino/libraries/GxEPD
Multiple libraries were found for "SPI.h"
Used: /Users/mattpackwood/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.2/libraries/SPI
Multiple libraries were found for "Adafruit_GFX.h"
Used: /Users/mattpackwood/Documents/Arduino/libraries/Adafruit_GFX_Library
Multiple libraries were found for "ESP8266WiFi.h"
Used: /Users/mattpackwood/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.2/libraries/ESP8266WiFi
fork/exec /Users/mattpackwood/Library/Arduino15/packages/esp8266/tools/python3/3.7.2-post1/python3: no such file or directory
Error compiling for board Generic ESP8266 Module.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
I just received my Rev 2B badgy. I'm trying to compile and upload the new bin file to my badgy using Arduino IDE 1.8.8 . I keep getting an ' stray error /'302' in program' when i compile the hello.ino example. I have tried it with the original hello.h file and once that I created withe the image2cpp application. I Even tried including all the recommended libraries ensuring I used the specified version of the libraries. I get the same error.
the following is the text from the error message copied and pasted from the IDE
any help would be appreciated. I thought this was going to be simple, cut and dry.
Arduino: 1.8.8 (Windows 10), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"
hello:31:3: error: stray '\302' in program
<title>badgy/hello.ino at master · sqfmi/badgy · GitHub</title>^
hello:31:3: error: stray '\267' in program
hello:31:3: error: stray '\302' in program
hello:31:3: error: stray '\267' in program
hello:268:5: error: missing terminating ' character
<!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-site-search-form" role="search" aria-label="Site" data-scope-type="Repository" data-scope-id="115660478" data-scoped-search-url="/sqfmi/badgy/search" data-unscoped-search-url="/search" action="/sqfmi/badgy/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓" />
^
hello:314:7: error: stray '\342' in program
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
^
hello:314:7: error: stray '\206' in program
hello:314:7: error: stray '\265' in program
hello:319:7: error: stray '\342' in program
<span class="d-inline-block ml-1 v-align-middle">↵</span>
^
hello:319:7: error: stray '\206' in program
hello:319:7: error: stray '\265' in program
hello:355:7: error: stray '\342' in program
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
^
hello:355:7: error: stray '\206' in program
hello:355:7: error: stray '\265' in program
hello:360:7: error: stray '\342' in program
<span class="d-inline-block ml-1 v-align-middle">↵</span>
^
hello:360:7: error: stray '\206' in program
hello:360:7: error: stray '\265' in program
hello:387:7: error: stray '\342' in program
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
^
hello:387:7: error: stray '\206' in program
hello:387:7: error: stray '\265' in program
hello:392:7: error: stray '\342' in program
<span class="d-inline-block ml-1 v-align-middle">↵</span>
^
hello:392:7: error: stray '\206' in program
hello:392:7: error: stray '\265' in program
hello:623:11: error: missing terminating ' character
<!-- '"` --><!-- </textarea></xmp> --></option></form><form action="/prompt_dismissals/signup" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="BAwVyFv90gvOUvKhmt+W1QsToWg7HRSDLrmmEgUGLg42YZVDhz0xUYu8bqCx+Gv8cpdES8JWrqVelBVasmUwEg==" />
^
hello:692:15: error: missing terminating " character
<a data-pjax="true" title="added commented out code for 2.9" red/white/black e-paper display" class="link-gray" href="/sqfmi/badgy/commit/8337226913017084e4a37874abb0fe2770ee68d7">added commented out code for 2.9" red/white/black e-paper display</a>
^
hello:789:69: error: stray '#' in program
<td id="LC2" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>GxEPD.h<span class="pl-pds">></span></span></td>
^
hello:793:69: error: stray '#' in program
<td id="LC3" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>GxGDEH029A1/GxGDEH029A1.h<span class="pl-pds">></span></span></td>
^
hello:801:69: error: stray '#' in program
<td id="LC5" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>GxIO/GxIO_SPI/GxIO_SPI.h<span class="pl-pds">></span></span></td>
^
hello:805:69: error: stray '#' in program
<td id="LC6" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>GxIO/GxIO.h<span class="pl-pds">></span></span></td>
^
hello:813:69: error: stray '#' in program
<td id="LC8" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>Fonts/FreeMonoBold9pt7b.h<span class="pl-pds">></span></span></td>
^
hello:817:69: error: stray '#' in program
<td id="LC9" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>Fonts/FreeSansBoldOblique24pt7b.h<span class="pl-pds">></span></span></td>
^
hello:825:70: error: stray '#' in program
<td id="LC11" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">"</span>hello.h<span class="pl-pds">"</span></span></td>
^
hello:833:70: error: stray '#' in program
<td id="LC13" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>ESP8266WiFi.h<span class="pl-pds">></span></span></td>
^
hello:837:70: error: stray '#' in program
<td id="LC14" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>WiFiClient.h<span class="pl-pds">></span></span></td>
^
hello:841:70: error: stray '#' in program
<td id="LC15" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>DNSServer.h<span class="pl-pds">></span></span></td>
^
hello:845:70: error: stray '#' in program
<td id="LC16" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>ESP8266WebServer.h<span class="pl-pds">></span></span></td>
^
hello:849:70: error: stray '#' in program
<td id="LC17" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>ESP8266HTTPUpdateServer.h<span class="pl-pds">></span></span></td>
^
hello:853:70: error: stray '#' in program
<td id="LC18" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>WiFiManager.h<span class="pl-pds">></span></span></td>
^
hello:1500:7: error: missing terminating ' character
<!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-jump-to-line-form Box-body d-flex" action="" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓" />
^
hello:1555:5: error: stray '\342' in program
You can’t perform that action at this time.
^
hello:1555:5: error: stray '\200' in program
hello:1555:5: error: stray '\231' in program
hello:7:1: error: expected unqualified-id before '<' token
^
hello:143:25: error: 'up' does not name a type
Sign up
^
hello:170:267: error: expected unqualified-id before '<' token
<a href="/features" class="py-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Features">Features <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a>
^
hello:184:332: error: expected unqualified-id before '<' token
<li class="edge-item-fix"><a href="/customer-stories" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Customer stories">Customer stories <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a></li>
^
hello:185:308: error: expected unqualified-id before '<' token
<li class="edge-item-fix"><a href="/security" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Security">Security <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a></li>
^
hello:205:299: error: expected unqualified-id before '<' token
<li class="edge-item-fix"><a href="/explore" class="py-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Explore">Explore GitHub <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a></li>
^
hello:208:113: error: 'contribute' does not name a type
<h4 class="text-gray-light text-normal text-mono f5 mb-2 border-lg-top pt-lg-3">Learn & contribute</h4>
^
hello:241:262: error: expected unqualified-id before '<' token
<a href="/pricing" class="pb-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Pricing">Plans <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a>
^
hello:249:312: error: expected unqualified-id before '<' token
<li class="edge-item-fix"><a href="/nonprofit" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Nonprofits">Nonprofit <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a></li>
^
hello:250:335: error: expected unqualified-id before '<' token
<li class="edge-item-fix"><a href="https://education.github.com" class="py-2 pb-0 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Education">Education <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a></li>
^
hello:411:21: error: 'in' does not name a type
Sign in
^
hello:417:23: error: 'up' does not name a type
Sign up
^
hello:789:148: error: expected unqualified-id before '<' token
<td id="LC2" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>GxEPD.h<span class="pl-pds">></span></span></td>
^
hello:789:187: error: expected unqualified-id before '<' token
<td id="LC2" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>GxEPD.h<span class="pl-pds">></span></span></td>
^
hello:793:148: error: expected unqualified-id before '<' token
<td id="LC3" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>GxGDEH029A1/GxGDEH029A1.h<span class="pl-pds">></span></span></td>
^
hello:793:205: error: expected unqualified-id before '<' token
<td id="LC3" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>GxGDEH029A1/GxGDEH029A1.h<span class="pl-pds">></span></span></td>
^
hello:801:148: error: expected unqualified-id before '<' token
<td id="LC5" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>GxIO/GxIO_SPI/GxIO_SPI.h<span class="pl-pds">></span></span></td>
^
hello:801:204: error: expected unqualified-id before '<' token
<td id="LC5" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>GxIO/GxIO_SPI/GxIO_SPI.h<span class="pl-pds">></span></span></td>
^
hello:805:148: error: expected unqualified-id before '<' token
<td id="LC6" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>GxIO/GxIO.h<span class="pl-pds">></span></span></td>
^
hello:805:191: error: expected unqualified-id before '<' token
<td id="LC6" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>GxIO/GxIO.h<span class="pl-pds">></span></span></td>
^
hello:813:148: error: expected unqualified-id before '<' token
<td id="LC8" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>Fonts/FreeMonoBold9pt7b.h<span class="pl-pds">></span></span></td>
^
hello:813:205: error: expected unqualified-id before '<' token
<td id="LC8" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>Fonts/FreeMonoBold9pt7b.h<span class="pl-pds">></span></span></td>
^
hello:817:148: error: expected unqualified-id before '<' token
<td id="LC9" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>Fonts/FreeSansBoldOblique24pt7b.h<span class="pl-pds">></span></span></td>
^
hello:817:213: error: expected unqualified-id before '<' token
<td id="LC9" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>Fonts/FreeSansBoldOblique24pt7b.h<span class="pl-pds">></span></span></td>
^
hello:825:151: error: expected unqualified-id before '<' token
<td id="LC11" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">"</span>hello.h<span class="pl-pds">"</span></span></td>
^
hello:825:192: error: expected unqualified-id before '<' token
<td id="LC11" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">"</span>hello.h<span class="pl-pds">"</span></span></td>
^
hello:833:149: error: expected unqualified-id before '<' token
<td id="LC13" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>ESP8266WiFi.h<span class="pl-pds">></span></span></td>
^
hello:833:194: error: expected unqualified-id before '<' token
<td id="LC13" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>ESP8266WiFi.h<span class="pl-pds">></span></span></td>
^
hello:837:149: error: expected unqualified-id before '<' token
<td id="LC14" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>WiFiClient.h<span class="pl-pds">></span></span></td>
^
hello:837:193: error: expected unqualified-id before '<' token
<td id="LC14" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>WiFiClient.h<span class="pl-pds">></span></span></td>
^
hello:841:149: error: expected unqualified-id before '<' token
<td id="LC15" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>DNSServer.h<span class="pl-pds">></span></span></td>
^
hello:841:192: error: expected unqualified-id before '<' token
<td id="LC15" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>DNSServer.h<span class="pl-pds">></span></span></td>
^
hello:845:149: error: expected unqualified-id before '<' token
<td id="LC16" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>ESP8266WebServer.h<span class="pl-pds">></span></span></td>
^
hello:845:199: error: expected unqualified-id before '<' token
<td id="LC16" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>ESP8266WebServer.h<span class="pl-pds">></span></span></td>
^
hello:849:149: error: expected unqualified-id before '<' token
<td id="LC17" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>ESP8266HTTPUpdateServer.h<span class="pl-pds">></span></span></td>
^
hello:849:206: error: expected unqualified-id before '<' token
<td id="LC17" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>ESP8266HTTPUpdateServer.h<span class="pl-pds">></span></span></td>
^
hello:853:149: error: expected unqualified-id before '<' token
<td id="LC18" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>WiFiManager.h<span class="pl-pds">></span></span></td>
^
hello:853:194: error: expected unqualified-id before '<' token
<td id="LC18" class="blob-code blob-code-inner js-file-line">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds"><</span>WiFiManager.h<span class="pl-pds">></span></span></td>
^
hello:866:187: error: expected unqualified-id before '<' token
<td id="LC21" class="blob-code blob-code-inner js-file-line"><span class="pl-k">const</span> <span class="pl-k">char</span>* name = <span class="pl-s"><span class="pl-pds">"</span>Badgy<span class="pl-pds">"</span></span>;</td>
^
hello:866:226: error: expected unqualified-id before '<' token
<td id="LC21" class="blob-code blob-code-inner js-file-line"><span class="pl-k">const</span> <span class="pl-k">char</span>* name = <span class="pl-s"><span class="pl-pds">"</span>Badgy<span class="pl-pds">"</span></span>;</td>
^
hello:866:241: error: expected unqualified-id before '<' token
<td id="LC21" class="blob-code blob-code-inner js-file-line"><span class="pl-k">const</span> <span class="pl-k">char</span>* name = <span class="pl-s"><span class="pl-pds">"</span>Badgy<span class="pl-pds">"</span></span>;</td>
^
hello:879:253: error: expected unqualified-id before '<' token
<td id="LC24" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">/*</span><span class="pl-c">*/</span></span><span class="pl-k">const</span> <span class="pl-k">int</span> port = <span class="pl-c1">8888</span>;</td>
^
hello:883:213: error: expected unqualified-id before '<' token
<td id="LC25" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">/*</span><span class="pl-c">*/</span></span>ESP8266WebServer <span class="pl-en">httpServer</span>(port);</td>
^
hello:887:188: error: expected unqualified-id before '<' token
<td id="LC26" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">/*</span><span class="pl-c">*/</span></span>ESP8266HTTPUpdateServer httpUpdater;</td>
^
hello:904:180: error: expected unqualified-id before '<' token
<td id="LC30" class="blob-code blob-code-inner js-file-line">GxIO_Class <span class="pl-en">io</span>(SPI, SS, <span class="pl-c1">0</span>, <span class="pl-c1">2</span>);</td>
^
hello:908:122: error: expected unqualified-id before '<' token
<td id="LC31" class="blob-code blob-code-inner js-file-line">GxEPD_Class <span class="pl-en">display</span>(io); <span class="pl-c"><span class="pl-c">//</span> default selection of D4, D2</span></td>
^
hello:921:118: error: expected unqualified-id before '<' token
<td id="LC34" class="blob-code blob-code-inner js-file-line">byte buttonState = <span class="pl-c1">0</span>;</td>
^
hello:925:125: error: expected unqualified-id before '<' token
<td id="LC35" class="blob-code blob-code-inner js-file-line">byte lastButtonState = <span class="pl-c1">0</span>; <span class="pl-c"><span class="pl-c">//</span>the previous reading from the input pin</span></td>
^
hello:929:186: error: expected unqualified-id before '<' token
<td id="LC36" class="blob-code blob-code-inner js-file-line"><span class="pl-k">unsigned</span> <span class="pl-k">long</span> lastDebounceTime = <span class="pl-c1">0</span>; <span class="pl-c"><span class="pl-c">//</span>the last time the output pin was toggled</span></td>
^
hello:933:186: error: expected unqualified-id before '<' token
<td id="LC37" class="blob-code blob-code-inner js-file-line"><span class="pl-k">unsigned</span> <span class="pl-k">long</span> debounceDelay = <span class="pl-c1">50</span>; <span class="pl-c"><span class="pl-c">//</span>the debounce time</span></td>
^
exit status 1
stray '\302' in program
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Hey guys.. Cool device here. Looking to hack it into a weather unit. I followed the instructions to get it on my WiFi and that works. However, now I can't seem to access the device or ping it. When starting I hold the center button and power on. Then get to the "you are now connected.... go to 192.168.2.44:8888 to upload a sketch". However, when I go to that IP in Chrome I get nothing - cant find it. Ping also does not work. The device shows on my router as connected and has a strong wifi signal. Any ideas? Note that I am powering via the PC USB cable. Also no port shows up in Arduino IDE. Am I correct that this does not support upload via USB as I see no USB/TTL converter on board?
Details: Win 10. Arduino 1.8.5. All libraries installed and compiling fine. Choose Generic ESP8266 module. Followed instructions here: https://github.com/sqfmi/badgy. Also note that I tried this all with a 2A power supply as well, so the unit is sufficiently powered.
Q: When compiling, what board should be selected?
I want to save image uploaded in webpage and sent to badgy using JavaScript and websocket.
I'm using ESPAsyncWebServer (and its async websocket) and image is received in chunks:
I write it into SPIFFS file in this form:
Problem is how to convert these data to valid form for display.drawBitmap(img, 0, 0, 296, 128, GxEPD_BLACK);
? I've tried many ways to convert characters to uint8_t array, but device is restarting - I don't know how to do this correctly to have enough memory.
File f = SPIFFS.open("/photo1.txt", "r");
String data = f.readString();
... How to convert it to uint8_t array?
Thanks.
I was having a go at putting micropython on the board, however mistakenly attempted to upload the "esp8266-20190125-v1.10.bin" micropython file via the OTA method rather than USB.
I'm now trying to install the default badgy.bin file via Arduino to start again however get the following exception:
Sketch uses 333532 bytes (31%) of program storage space. Maximum is 1044464 bytes.
Global variables use 37136 bytes (45%) of dynamic memory, leaving 44784 bytes for local variables. Maximum is 81920 bytes.
esptool.py v2.6
2.6
esptool.py v2.6
Serial port COM4
Connecting........_____....._____....._____....._____....._____....._____.....____Traceback (most recent call last):
File "C:\...\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/upload.py", line 25, in <module>
esptool.main(fakeargs)
File "C:/.../Arduino15/packages/esp8266/hardware/esp8266/2.5.2/tools/esptool\esptool.py", line 2653, in main
esp.connect(args.before)
File "C:/.../Arduino15/packages/esp8266/hardware/esp8266/2.5.2/tools/esptool\esptool.py", line 468, in connect
raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
esptool.FatalError: Failed to connect to ESP8266: Invalid head of packet (0x6C)
esptool.FatalError: Failed to connect to ESP8266: Invalid head of packet (0x6C)
Would this be due to uploading the micropython .bin file via OTA? Can I reset Badgy or still put micropython on it?
I've got ideas for Badgy that require me to connect to a GPIO pin (e.g. a 1-wire digital temperature sensor). I see that GPIO9 seems to be free. Can I solder to it or is it used internally by the package? Are there other free pins that I'm missing? If there aren't any, I can sacrifice directions of the joystick, right?
Originally posted by @ibuildrockets in #20 (comment)
I have a working sketch that connects to an api and pulls check-in information and displays it on the badge when I press the right toggle button. I'd like to also display the check-in barcode when I press left.
When I started testing this I found that the left button and down button are triggered all the time.
After I click right it immediately triggers left and down. I've increased the milliseconds on the debounce but it had no effect. It didn't change how fast it was triggered either.
Either my button is defective or something else is interfering?
Is anybody else having this issue?
Has anybody solved it?
Are the schematics or the PCB layout pubilshed anywhere or will there be badgies available on tindie again? Thanks
Hi there! I'm trying this out for the first time... all of it. I'm following the 'getting started' type info
Just copied the text from the hello section and pasted it into the IDE and changed it to be my handle. Is there another way this is supposed to be done?
----------------------- begin error text copied from Arduino IDE ------------------
Arduino: 1.8.9 (Windows Store 1.8.21.0) (Windows 10), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"
hello:111:25: error: variable or field 'configModeCallback' declared void
void configModeCallback (WiFiManager *myWiFiManager){
^
hello:111:25: error: 'WiFiManager' was not declared in this scope
hello:111:38: error: 'myWiFiManager' was not declared in this scope
void configModeCallback (WiFiManager *myWiFiManager){
^
C:\Users\Admin\Documents\Arduino\Badgy\Hello\hello.h\hello.ino: In function 'void setup()':
hello:51:31: error: 'configModeCallback' was not declared in this scope
wifiManager.setAPCallback(configModeCallback);
^
exit status 1
variable or field 'configModeCallback' declared void
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
-------------------- end error dump -------------------
Using Arduino 1.8.9 (Windows Store 1.8.21.0)
Thanks for any help in advance!
Respectfully,
SciaticNerd
I just received my Badgy. I installed a LIR2450 battery, started it up, and played with the defaults. The screen responded to the button and joystick.
I wanted to install MicroPython right away so I followed instructions to get esptool.py for my Mac running macOS 10.14.6. I also installed the SIL USB driver.
I was able to get the “erase_flash” command to work.
esptool.py v2.7
Found 5 serial ports
Serial port /dev/cu.SLAB_USBtoUART
Connecting........_
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 84:f3:eb:84:64:fc
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 7.1s
Hard resetting via RTS pin...
After that, all of my attempts to do anything — erase_flash or write_flash — with esptool.py have failed.
esptool.py v2.7
Serial port /dev/cu.SLAB_USBtoUART
Connecting........_____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to Espressif device: Timed out waiting for packet header
I have tried turning the Badgy off, holding the button down while turning it on, and other tips/tricks I’ve come across in the issues. I’ve tried various baud rates, all the way down to 9600.
Other notes:
This isn't an issue, but not sure where else to talk about this.
I just finished proof of concept of a Check-in security badge we use at our Church.
https://github.com/pastorhudson/PCOBadge
What have you guys/gals built using Badgy?
Connected to a MiFi while on the road and set up the Badgy for the first time. Now I want to connect it to my home network and there's no clear way how to do that. Flashing the badgy.bin default file didn't reset it. Any tips on how to reset the WiFi credentials and go back into AP mode?
Thanks
Hi There!
Yesterday I was cleaning out my drawer and found a Badgy REV1 that I hadn't tried for a while. I hooked it up 2 a micro usb connector to see if it would power up (without a battery). The display did a nice redraw, but then I noticed some magic smoke, so I quickly disconnected the USB wire.
It looks like U2 is the one that was fried. But I don't really understand what the reason is for this. Especially without battery.
Any idea what the reason can be?
Thanks!
Hi, can you give the pcb layout?
Or when are you planning to build other board?
When will a new revision will be available on tindie ?
Discussed this on #20 , pasting here the conversation relevant for this new issue:
@sqfmi Hi, I have one of the blue PCB models which was bought in July last year and I suffer from exactly the same behaviour as described on this post. Any idea what's happening?
Works fine on USB power, but on Battery simply flashes the ESP blue LED and the nothing happens.
Any pointers are greatly appreciated - if it helps: Tindie Order #115523
Thanks @chunkysteveo for the quick response
Is it possible to measure the battery voltage?
Or have you considered using the adc with a voltage divider?
On Tindie, theres a picture showing a weather forecast.
Could the code for it be uploaded to the examples-folder?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.