From 33946af39f240a072c1dbf59ee91504334074057 Mon Sep 17 00:00:00 2001 From: Marcel van der Boom Date: Thu, 25 Jun 2020 21:15:12 +0200 Subject: [PATCH 1/8] SCREEN_WIDTH is visible area already, not addressable area - sh1106 starts showing from column 2 (the library handles the offsets) so we don't actually need the different screen width here. --- src/screen.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/screen.cpp b/src/screen.cpp index f64f3784a..b72712378 100644 --- a/src/screen.cpp +++ b/src/screen.cpp @@ -35,11 +35,8 @@ along with this program. If not, see . #define FONT_HEIGHT 14 // actually 13 for "ariel 10" but want a little extra space #define FONT_HEIGHT_16 (ArialMT_Plain_16[1] + 1) -#ifdef USE_SH1106 -#define SCREEN_WIDTH 132 -#else +// This means the *visible* area (sh1106 can address 132, but shows 128 for example) #define SCREEN_WIDTH 128 -#endif #define SCREEN_HEIGHT 64 #define TRANSITION_FRAMERATE 30 // fps #define IDLE_FRAMERATE 10 // in fps From ac2d3e2ae0b65dff561618a15acda9451bd9f318 Mon Sep 17 00:00:00 2001 From: Marcel van der Boom Date: Thu, 25 Jun 2020 21:16:35 +0200 Subject: [PATCH 2/8] Correct type of setBrightness parameter --- src/screen.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/screen.h b/src/screen.h index 6d4d8b373..5f2eb9264 100644 --- a/src/screen.h +++ b/src/screen.h @@ -119,7 +119,7 @@ class Screen : public PeriodicTask // Implementation to Adjust Brightness void adjustBrightness(); - int brightness = 150; + uint8_t brightness = 150; /// Starts showing the Bluetooth PIN screen. // From 9b9447858a5b98ec6c87c7a6a8cb1f6a1a320a2b Mon Sep 17 00:00:00 2001 From: Toby Murray Date: Wed, 1 Jul 2020 13:12:00 -0400 Subject: [PATCH 3/8] Add Canada to list of countries that use 915 MHz Meshtastic prompted me to get a couple boards to try, and I had to figure out what frequency. Canada uses the same US902-928 as the US, add it to the list for simplicity. Not sure where to find an "official" reference, but there's a reference here: https://www.thethingsnetwork.org/docs/lorawan/frequencies-by-country.html --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cbe76494d..c50a1d67d 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ We currently support three models of radios. **Make sure to get the frequency for your country** -- US/JP/AU/NZ - 915MHz +- US/JP/AU/NZ/CA - 915MHz - CN - 470MHz - EU - 868MHz, 433MHz From da12b93f82528a36cedd473a732e79c8ea06453e Mon Sep 17 00:00:00 2001 From: Slavomir Hustaty Date: Thu, 2 Jul 2020 16:54:24 +0200 Subject: [PATCH 4/8] Update configuration.h https://user-images.githubusercontent.com/1584034/86362734-08525e00-bc76-11ea-8a34-8579d1fa2965.jpg related to issue https://github.com/meshtastic/Meshtastic-device/issues/243 --- src/configuration.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/configuration.h b/src/configuration.h index d0ec7aad3..f362eec96 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -180,8 +180,8 @@ along with this program. If not, see . // This board has different GPS pins than all other boards #undef GPS_RX_PIN #undef GPS_TX_PIN -#define GPS_RX_PIN 12 -#define GPS_TX_PIN 15 +#define GPS_RX_PIN 15 +#define GPS_TX_PIN 12 #elif defined(ARDUINO_HELTEC_WIFI_LORA_32_V2) // This string must exactly match the case used in release file names or the android updater won't work From 439cdfbb3254c1b4810a3adffa1fba72aabfb86d Mon Sep 17 00:00:00 2001 From: Slavomir Hustaty Date: Fri, 3 Jul 2020 07:41:22 +0200 Subject: [PATCH 5/8] Update configuration.h https://github.com/meshtastic/Meshtastic-device/issues/243#issuecomment-653361142 --- src/configuration.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/configuration.h b/src/configuration.h index f362eec96..d0ec7aad3 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -180,8 +180,8 @@ along with this program. If not, see . // This board has different GPS pins than all other boards #undef GPS_RX_PIN #undef GPS_TX_PIN -#define GPS_RX_PIN 15 -#define GPS_TX_PIN 12 +#define GPS_RX_PIN 12 +#define GPS_TX_PIN 15 #elif defined(ARDUINO_HELTEC_WIFI_LORA_32_V2) // This string must exactly match the case used in release file names or the android updater won't work From 8d122f36e3ac037cabb96d0993a0bf5c2f3bfdd6 Mon Sep 17 00:00:00 2001 From: Slavomir Hustaty Date: Fri, 3 Jul 2020 07:44:14 +0200 Subject: [PATCH 6/8] Update platformio.ini https://github.com/meshtastic/Meshtastic-device/issues/243#issuecomment-653361142 --- platformio.ini | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/platformio.ini b/platformio.ini index f54ab582f..4e61e9acc 100644 --- a/platformio.ini +++ b/platformio.ini @@ -99,17 +99,16 @@ board = ttgo-t-beam lib_deps = ${env.lib_deps} https://github.com/meshtastic/AXP202X_Library.git - build_flags = ${esp32_base.build_flags} -D TBEAM_V10 ; The original TBEAM board without the AXP power chip and a few other changes ; Note: I've heard reports this didn't work. Disabled until someone with a 0.7 can test and debug. -;[env:tbeam0.7] -;extends = esp32_base -;board = ttgo-t-beam -;build_flags = -; ${esp32_base.build_flags} -D TBEAM_V07 +[env:tbeam0.7] +extends = esp32_base +board = ttgo-t-beam +build_flags = + ${esp32_base.build_flags} -D TBEAM_V07 [env:heltec] ;build_type = debug ; to make it possible to step through our jtag debugger From 0f92678c3bf5421fa40f686cdfd4bb337f78b44b Mon Sep 17 00:00:00 2001 From: Slavomir Hustaty Date: Fri, 3 Jul 2020 10:35:42 +0200 Subject: [PATCH 7/8] Update README.md TBeam 0.7 + W.W. LoRa freqs list link --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c50a1d67d..c5d7b1bbf 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ This software is 100% open source and developed by a group of hobbyist experimen We currently support three models of radios. - TTGO T-Beam - + - [T-Beam V0.7 w/ NEO-6M](https://www.aliexpress.com/item/4000574335430.html) - [T-Beam V1.0 w/ NEO-6M - special Meshtastic version](https://www.aliexpress.com/item/4001178678568.html) (Includes built-in OLED display and they have **preinstalled** the meshtastic software) - [T-Beam V1.0 w/ NEO-M8N](https://www.aliexpress.com/item/33047631119.html) (slightly better GPS) - 3D printable cases @@ -43,6 +43,7 @@ We currently support three models of radios. - US/JP/AU/NZ/CA - 915MHz - CN - 470MHz - EU - 868MHz, 433MHz +- full list of LoRa frequencies per region is available [here](https://www.thethingsnetwork.org/docs/lorawan/frequencies-by-country.html) Getting a version that includes a screen is optional, but highly recommended. From cda423acab5aa08b969722d9e4124bab1047db1c Mon Sep 17 00:00:00 2001 From: Professr Date: Fri, 3 Jul 2020 02:53:56 -0700 Subject: [PATCH 8/8] Changed GPS DOP display to bars, added satellites display and compass rose --- src/GPSStatus.h | 24 +++++++- src/gps/GPS.h | 2 + src/gps/NEMAGPS.cpp | 12 +++- src/gps/UBloxGPS.cpp | 4 +- src/screen.cpp | 140 +++++++++++++++++++++++++------------------ 5 files changed, 116 insertions(+), 66 deletions(-) diff --git a/src/GPSStatus.h b/src/GPSStatus.h index 8daf97cdc..ed9e0fbc6 100644 --- a/src/GPSStatus.h +++ b/src/GPSStatus.h @@ -17,13 +17,15 @@ namespace meshtastic { int32_t latitude = 0, longitude = 0; // as an int mult by 1e-7 to get value as double int32_t altitude = 0; uint32_t dop = 0; // Diminution of position; PDOP where possible (UBlox), HDOP otherwise (TinyGPS) in 10^2 units (needs scaling before use) + uint32_t heading = 0; + uint32_t numSatellites = 0; public: GPSStatus() { statusType = STATUS_TYPE_GPS; } - GPSStatus( bool hasLock, bool isConnected, int32_t latitude, int32_t longitude, int32_t altitude, uint32_t dop ) : Status() + GPSStatus( bool hasLock, bool isConnected, int32_t latitude, int32_t longitude, int32_t altitude, uint32_t dop, uint32_t heading, uint32_t numSatellites ) : Status() { this->hasLock = hasLock; this->isConnected = isConnected; @@ -31,6 +33,8 @@ namespace meshtastic { this->longitude = longitude; this->altitude = altitude; this->dop = dop; + this->heading = heading; + this->numSatellites = numSatellites; } GPSStatus(const GPSStatus &); GPSStatus &operator=(const GPSStatus &); @@ -70,6 +74,16 @@ namespace meshtastic { return dop; } + uint32_t getHeading() const + { + return heading; + } + + uint32_t getNumSatellites() const + { + return numSatellites; + } + bool matches(const GPSStatus *newStatus) const { return ( @@ -78,7 +92,9 @@ namespace meshtastic { newStatus->latitude != latitude || newStatus->longitude != longitude || newStatus->altitude != altitude || - newStatus->dop != dop + newStatus->dop != dop || + newStatus->heading != heading || + newStatus->numSatellites != numSatellites ); } int updateStatus(const GPSStatus *newStatus) { @@ -93,9 +109,11 @@ namespace meshtastic { longitude = newStatus->longitude; altitude = newStatus->altitude; dop = newStatus->dop; + heading = newStatus->heading; + numSatellites = newStatus->numSatellites; } if(isDirty) { - DEBUG_MSG("New GPS pos lat=%f, lon=%f, alt=%d, pdop=%f\n", latitude * 1e-7, longitude * 1e-7, altitude, dop * 1e-2); + DEBUG_MSG("New GPS pos lat=%f, lon=%f, alt=%d, pdop=%f, heading=%f, sats=%d\n", latitude * 1e-7, longitude * 1e-7, altitude, dop * 1e-2, heading * 1e-5, numSatellites); onNewStatus.notifyObservers(this); } return 0; diff --git a/src/gps/GPS.h b/src/gps/GPS.h index c8b55eb2d..5c52e7cab 100644 --- a/src/gps/GPS.h +++ b/src/gps/GPS.h @@ -36,6 +36,8 @@ class GPS : public Observable int32_t latitude = 0, longitude = 0; // as an int mult by 1e-7 to get value as double int32_t altitude = 0; uint32_t dop = 0; // Diminution of position; PDOP where possible (UBlox), HDOP otherwise (TinyGPS) in 10^2 units (needs scaling before use) + uint32_t heading = 0; // Heading of motion, in degrees * 10^-5 + uint32_t numSatellites = 0; bool isConnected = false; // Do we have a GPS we are talking to diff --git a/src/gps/NEMAGPS.cpp b/src/gps/NEMAGPS.cpp index 4858806ca..606d21eed 100644 --- a/src/gps/NEMAGPS.cpp +++ b/src/gps/NEMAGPS.cpp @@ -54,12 +54,18 @@ void NEMAGPS::loop() longitude = toDegInt(loc.lng); } // Diminution of precision (an accuracy metric) is reported in 10^2 units, so we need to scale down when we use it - if(reader.hdop.isValid()) { + if (reader.hdop.isValid()) { dop = reader.hdop.value(); } + if (reader.course.isValid()) { + heading = reader.course.value() * 1e3; //Scale the heading (in degrees * 10^-2) to match the expected degrees * 10^-5 + } + if (reader.satellites.isValid()) { + numSatellites = reader.satellites.value(); + } // expect gps pos lat=37.520825, lon=-122.309162, alt=158 - DEBUG_MSG("new NEMA GPS pos lat=%f, lon=%f, alt=%d, hdop=%f\n", latitude * 1e-7, longitude * 1e-7, altitude, dop * 1e-2); + DEBUG_MSG("new NEMA GPS pos lat=%f, lon=%f, alt=%d, hdop=%f, heading=%f\n", latitude * 1e-7, longitude * 1e-7, altitude, dop * 1e-2, heading * 1e-5); hasValidLocation = (latitude != 0) || (longitude != 0); // bogus lat lon is reported as 0,0 if (hasValidLocation) @@ -67,7 +73,7 @@ void NEMAGPS::loop() } // Notify any status instances that are observing us - const meshtastic::GPSStatus status = meshtastic::GPSStatus(hasLock(), isConnected, latitude, longitude, altitude, dop); + const meshtastic::GPSStatus status = meshtastic::GPSStatus(hasLock(), isConnected, latitude, longitude, altitude, dop, heading, numSatellites); newStatus.notifyObservers(&status); } } \ No newline at end of file diff --git a/src/gps/UBloxGPS.cpp b/src/gps/UBloxGPS.cpp index 7c940983d..6c2660671 100644 --- a/src/gps/UBloxGPS.cpp +++ b/src/gps/UBloxGPS.cpp @@ -116,6 +116,8 @@ The Unix epoch (or Unix time or POSIX time or Unix timestamp) is the number of s longitude = ublox.getLongitude(0); altitude = ublox.getAltitude(0) / 1000; // in mm convert to meters dop = ublox.getPDOP(0); // PDOP (an accuracy metric) is reported in 10^2 units so we have to scale down when we use it + heading = ublox.getHeading(0); + numSatellites = ublox.getSIV(0); // bogus lat lon is reported as 0 or 0 (can be bogus just for one) // Also: apparently when the GPS is initially reporting lock it can output a bogus latitude > 90 deg! @@ -129,7 +131,7 @@ The Unix epoch (or Unix time or POSIX time or Unix timestamp) is the number of s wantNewLocation = true; // Notify any status instances that are observing us - const meshtastic::GPSStatus status = meshtastic::GPSStatus(hasLock(), isConnected, latitude, longitude, altitude, dop); + const meshtastic::GPSStatus status = meshtastic::GPSStatus(hasLock(), isConnected, latitude, longitude, altitude, dop, heading, numSatellites); newStatus.notifyObservers(&status); // Once we have sent a location once we only poll the GPS rarely, otherwise check back every 1s until we have something over diff --git a/src/screen.cpp b/src/screen.cpp index 74f0065df..11cee0bad 100644 --- a/src/screen.cpp +++ b/src/screen.cpp @@ -55,8 +55,10 @@ static FrameCallback normalFrames[MAX_NUM_NODES + NUM_EXTRA_FRAMES]; static uint32_t targetFramerate = IDLE_FRAMERATE; static char btPIN[16] = "888888"; -uint8_t imgBattery[16] = { 0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xE7, 0x3C }; -static bool heartbeat = false; +uint8_t imgBattery[16] = { 0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xE7, 0x3C }; +uint8_t imgSatellite[8] = { 0x70, 0x71, 0x22, 0xFA, 0xFA, 0x22, 0x71, 0x70 }; + +uint32_t dopThresholds[5] = { 2000, 1000, 500, 200, 100 }; static void drawBootScreen(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y) { @@ -210,38 +212,39 @@ static void drawNodes(OLEDDisplay *display, int16_t x, int16_t y, NodeStatus *no // Draw GPS status summary static void drawGPS(OLEDDisplay *display, int16_t x, int16_t y, const GPSStatus *gps) { - if (!gps->getIsConnected()) { + if (!gps->getIsConnected()) + { display->drawString(x, y - 2, "No GPS"); return; } display->drawFastImage(x, y, 6, 8, gps->getHasLock() ? imgPositionSolid : imgPositionEmpty); - if (!gps->getHasLock()) { + if (!gps->getHasLock()) + { display->drawString(x + 8, y - 2, "No sats"); return; - } - if (gps->getDOP() <= 100) { - display->drawString(x + 8, y - 2, "Ideal"); - return; - } - if (gps->getDOP() <= 200) { - display->drawString(x + 8, y - 2, "Exc."); - return; - } - if (gps->getDOP() <= 500) { - display->drawString(x + 8, y - 2, "Good"); - return; - } - if (gps->getDOP() <= 1000) { - display->drawString(x + 8, y - 2, "Mod."); - return; - } - if (gps->getDOP() <= 2000) { - display->drawString(x + 8, y - 2, "Fair"); - return; - } - if (gps->getDOP() > 0) { - display->drawString(x + 8, y - 2, "Poor"); - return; + } + else + { + char satsString[3]; + uint8_t bar[2] = { 0 }; + + //Draw DOP signal bars + for(int i = 0; i < 5; i++) + { + if (gps->getDOP() <= dopThresholds[i]) + bar[0] = ~((1 << (5 - i)) - 1); + else + bar[0] = 0b10000000; + //bar[1] = bar[0]; + display->drawFastImage(x + 9 + (i * 2), y, 2, 8, bar); + } + + //Draw satellite image + display->drawFastImage(x + 24, y, 8, 8, imgSatellite); + + //Draw the number of satellites + sprintf(satsString, "%d", gps->getNumSatellites()); + display->drawString(x + 34, y - 2, satsString); } } @@ -384,28 +387,41 @@ static bool hasPosition(NodeInfo *n) static size_t nodeIndex; static int8_t prevFrame = -1; -// Draw the compass and arrow pointing to location -static void drawCompass(OLEDDisplay *display, int16_t compassX, int16_t compassY, float headingRadian) +// Draw the arrow pointing to a node's location +static void drawNodeHeading(OLEDDisplay *display, int16_t compassX, int16_t compassY, float headingRadian) { - // display->drawXbm(compassX, compassY, compass_width, compass_height, - // (const uint8_t *)compass_bits); - Point tip(0.0f, 0.5f), tail(0.0f, -0.5f); // pointing up initially float arrowOffsetX = 0.2f, arrowOffsetY = 0.2f; Point leftArrow(tip.x - arrowOffsetX, tip.y - arrowOffsetY), rightArrow(tip.x + arrowOffsetX, tip.y - arrowOffsetY); - Point *points[] = {&tip, &tail, &leftArrow, &rightArrow}; + + Point *arrowPoints[] = {&tip, &tail, &leftArrow, &rightArrow}; for (int i = 0; i < 4; i++) { - points[i]->rotate(headingRadian); - points[i]->scale(COMPASS_DIAM * 0.6); - points[i]->translate(compassX, compassY); + arrowPoints[i]->rotate(headingRadian); + arrowPoints[i]->scale(COMPASS_DIAM * 0.6); + arrowPoints[i]->translate(compassX, compassY); } drawLine(display, tip, tail); drawLine(display, leftArrow, tip); drawLine(display, rightArrow, tip); +} - display->drawCircle(compassX, compassY, COMPASS_DIAM / 2); +// Draw the compass heading +static void drawCompassHeading(OLEDDisplay *display, int16_t compassX, int16_t compassY, float myHeading) +{ + Point N1(-0.04f, -0.65f), N2( 0.04f, -0.65f); + Point N3(-0.04f, -0.55f), N4( 0.04f, -0.55f); + Point *rosePoints[] = {&N1, &N2, &N3, &N4}; + + for (int i = 0; i < 4; i++) { + rosePoints[i]->rotate(myHeading); + rosePoints[i]->scale(COMPASS_DIAM); + rosePoints[i]->translate(compassX, compassY); + } + drawLine(display, N1, N3); + drawLine(display, N2, N4); + drawLine(display, N1, N4); } /// Convert an integer GPS coords to a floating point @@ -459,29 +475,35 @@ static void drawNodeInfo(OLEDDisplay *display, OLEDDisplayUiState *state, int16_ const char *fields[] = {username, distStr, signalStr, lastStr, NULL}; // coordinates for the center of the compass/circle - int16_t compassX = x + SCREEN_WIDTH - COMPASS_DIAM / 2 - 1, compassY = y + SCREEN_HEIGHT / 2; + int16_t compassX = x + SCREEN_WIDTH - COMPASS_DIAM / 2 - 5, compassY = y + SCREEN_HEIGHT / 2; - if (ourNode && hasPosition(ourNode) && hasPosition(node)) { // display direction toward node - Position &op = ourNode->position, &p = node->position; - float d = latLongToMeter(DegD(p.latitude_i), DegD(p.longitude_i), DegD(op.latitude_i), DegD(op.longitude_i)); - if (d < 2000) - snprintf(distStr, sizeof(distStr), "%.0f m", d); - else - snprintf(distStr, sizeof(distStr), "%.1f km", d / 1000); + if(ourNode && hasPosition(ourNode)) + { + Position &op = ourNode->position; + float myHeading = estimatedHeading(DegD(op.latitude_i), DegD(op.longitude_i)); + drawCompassHeading(display, compassX, compassY, myHeading); - // FIXME, also keep the guess at the operators heading and add/substract - // it. currently we don't do this and instead draw north up only. - float bearingToOther = bearing(DegD(p.latitude_i), DegD(p.longitude_i), DegD(op.latitude_i), DegD(op.longitude_i)); - float myHeading = estimatedHeading(DegD(p.latitude_i), DegD(p.longitude_i)); - headingRadian = bearingToOther - myHeading; - drawCompass(display, compassX, compassY, headingRadian); - } else { // direction to node is unknown so display question mark - // Debug info for gps lock errors - // DEBUG_MSG("ourNode %d, ourPos %d, theirPos %d\n", !!ourNode, ourNode && hasPosition(ourNode), hasPosition(node)); + if(hasPosition(node)) { // display direction toward node + Position &p = node->position; + float d = latLongToMeter(DegD(p.latitude_i), DegD(p.longitude_i), DegD(op.latitude_i), DegD(op.longitude_i)); + if (d < 2000) + snprintf(distStr, sizeof(distStr), "%.0f m", d); + else + snprintf(distStr, sizeof(distStr), "%.1f km", d / 1000); - display->drawString(compassX - FONT_HEIGHT / 4, compassY - FONT_HEIGHT / 2, "?"); - display->drawCircle(compassX, compassY, COMPASS_DIAM / 2); + // FIXME, also keep the guess at the operators heading and add/substract + // it. currently we don't do this and instead draw north up only. + float bearingToOther = bearing(DegD(p.latitude_i), DegD(p.longitude_i), DegD(op.latitude_i), DegD(op.longitude_i)); + headingRadian = bearingToOther - myHeading; + drawNodeHeading(display, compassX, compassY, headingRadian); + } else { // direction to node is unknown so display question mark + // Debug info for gps lock errors + // DEBUG_MSG("ourNode %d, ourPos %d, theirPos %d\n", !!ourNode, ourNode && hasPosition(ourNode), hasPosition(node)); + display->drawString(compassX - FONT_HEIGHT / 4, compassY - FONT_HEIGHT / 2, "?"); + } } + display->drawCircle(compassX, compassY, COMPASS_DIAM / 2); + // Must be after distStr is populated drawColumns(display, x, y, fields); @@ -758,7 +780,7 @@ void DebugInfo::drawFrame(OLEDDisplay *display, OLEDDisplayUiState *state, int16 // Display nodes status drawNodes(display, x + (SCREEN_WIDTH * 0.25), y + 2, nodeStatus); // Display GPS status - drawGPS(display, x + (SCREEN_WIDTH * 0.66), y + 2, gpsStatus); + drawGPS(display, x + (SCREEN_WIDTH * 0.63), y + 2, gpsStatus); } display->drawString(x, y + FONT_HEIGHT, channelStr); @@ -787,7 +809,7 @@ void Screen::adjustBrightness() } int Screen::handleStatusUpdate(const Status *arg) { - DEBUG_MSG("Screen got status update %d\n", arg->getStatusType()); + //DEBUG_MSG("Screen got status update %d\n", arg->getStatusType()); switch(arg->getStatusType()) { case STATUS_TYPE_NODE: