Giter Site home page Giter Site logo

ex-t3-wifi's People

Contributors

alex-code avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ex-t3-wifi's Issues

error: expected class-name before '{' token class BMP : public ImgHandler {

Describe the bug
Running Visual Studio Code app in Linux
Note BMP.cpp and BMP.h are dated 2022/12/08; Img.cpp and Img.h are dated 2022/11/29

snippet of the code complie log pasted below:
"In file included from lib/UI/Img/Img.cpp:2:
lib/UI/Img/BMP.h:9:31: error: expected class-name before '{' token
class BMP : public ImgHandler {
^
lib/UI/Img/Img.cpp: In static member function 'static Img* Img::load(fs::File)':
lib/UI/Img/Img.cpp:9:25: error: cannot convert 'BMP*' to 'Img*' in return
return new BMP(img);
^
*** [.pio/build/firebeetle2/lib843/UI/Img/Img.cpp.o] Error 1"

To Reproduce
Steps to reproduce the behavior:

  1. re-run build job

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'

Expected behavior
Compiles to end w/o error code

Screenshots or debug output
If applicable, add screenshots or debug output to help explain your problem.
Debug output can be obtained from the serial monitor

Additional info
Executing task in folder EX-T3-WiFi-master: platformio run --environment firebeetle2
Processing firebeetle2 (platform: espressif32@^5.2.0; board: firebeetle2; framework: arduino)

Throttle not sending commands to CS

Hi,
I've recently built one of the T3 throttles. After a couple of early mistakes(not uploading the Filesystem Image and the code), I was able to get my screen displaying the throttle. I wasn't able to connect to the throttle settings by using DCCEX but could when I used the IP address of the throttle on my network. I then setup a couple of locos and a custom function screen. All of this seemed to work correctly. However, when I then tried to enter a loco, by number or name, I get the next screen with no function buttons and no speed or direction information. I have checked a LocoNet viewer and there is no information coming from the T3 throttle. I get information from iPhone and Android throttles but not the T3. My CS sees the T3 and the screen indicates both WiFi and CS connection,

I think it must just be a communication link that I overlooked but I am at a loss. I have checked my wiring and programming several times and not found any errors or mistakes.

Could anyone please offer some suggestions as to what to do next. I can provide more info if you give me some idea of what.

compilation problem in new release

Fails during compilation with the following output:

lots of good stuff then

Compiling .pio\build\firebeetle2\FrameworkArduino\stdlib_noniso.c.o
Compiling .pio\build\firebeetle2\FrameworkArduino\wiring_pulse.c.o
Compiling .pio\build\firebeetle2\FrameworkArduino\wiring_shift.c.o
In file included from lib/UI/Img/Img.cpp:2:
lib/UI/Img/BMP.h:9:31: error: expected class-name before '{' token
class BMP : public ImgHandler {
^
lib/UI/Img/Img.cpp: In static member function 'static Img* Img::load(fs::File)':
lib/UI/Img/Img.cpp:9:25: error: cannot convert 'BMP*' to 'Img*' in return
return new BMP(img);
^
*** [.pio\build\firebeetle2\lib258\UI\Img\Img.cpp.o] Error 1

EX-T3 Throttle and JMRI WiThrottle compatibility

Describe the bug
Exploration of JMRI WiThrottle server support with DCC EX Throttle.

To Reproduce
Steps to reproduce the behavior:
N/A

Expected behavior
Functionality to use throttle with JMRI WiThrottle server.

Screenshots or debug output
If applicable, add screenshots or debug output to help explain your problem.
N/A

Additional info

  • Component: All items purchased via Github links
  • Version: N/A

3d print possible issue

JLCPCB reports that when printing the top there is a very narrow section which might not print correctly.
This is at the top narrow end inside of the cover. Not sure how to correct this myself.
JLCPCB

Ideas : Documentation Improvements

Not a problem but an observation:

  • In reviewing the assembly.md it is clear that a lot is left unsaid. Scrolling down to the first picture I see an accelerometer screw down and some details about wiring it. It occurs to me that is not an assembly step but a wiring detail.
  • I think this document should start with 'a box of parts' and lead step by step putting it all together.
  • The details of how to tackle specific items in the process is good and must not be lost .. but it is not part of the main 'assembly flow'
  • Other examples observed further down - for example - firebeetle is attached to frame - ok but in the photo the frame is already attached to something - when did that happen? Are other parts attached to the frame first?

NEXT

  • Usage Cases - I saw several places where the accelerometer is described as optional. I could not find why I might want to use it.
  • A block diagram of the subassemblies and how they integrate could provide some context. Wiring the switch and what it is connected to etc.

In my case I have ordered my parts and started 3D printing the case.
While awaiting delivery I have been reading and re-reading what I can.
I like what I have seen but some polish here could really raise the profile

No loco functions except forward, reverse and speed.

Describe the bug
When in the loco screen all I have is fwd & rev and speed. Seems like there should be more "stuff" Is this normal? The fwd ,rev and speed functions work as they should as far as I can tell. Followed the code upload directions to the letter. (pretty sure anyway)
See attached picture.

PXL_20230220_013728782

Screenshots or debug output
If applicable, add screenshots or debug output to help explain your problem.

Setup instructions

In the setup.md instructions at the bottom it indicates

If your CS is connected to your local WiFi
The server and port are dccex and 2560 by default, you'll only need to change these if you changed them on your Command Station

This was not my experience. I needed to replace the server name with the ip address of my CS on my local network.

platformio compile errors

lots of compile errors in platformio as listed below. I know its just a few simple problems or just me being thick..but..Help!:

Compiling .pio\build\firebeetle2\src\WiFiUI.cpp.o
Compiling .pio\build\firebeetle2\src\main.cpp.o
src/Locos.cpp: In member function 'void Locos::add(uint16_t)':
src/Locos.cpp:21:13: error: 'find' is not a member of 'std'
auto it = std::find(_locos.begin(), _locos.end(), address);
^
src/Locos.cpp: In member function 'uint16_t Locos::remove()':
src/Locos.cpp:36:13: error: 'find' is not a member of 'std'
auto it = std::find(_locos.begin(), _locos.end(), address);
^
Compiling .pio\build\firebeetle2\lib7d3\WiFi\WiFiGeneric.cpp.o
Compiling .pio\build\firebeetle2\lib7d3\WiFi\WiFiMulti.cpp.o
Compiling .pio\build\firebeetle2\lib7d3\WiFi\WiFiSTA.cpp.o
Compiling .pio\build\firebeetle2\lib7d3\WiFi\WiFiScan.cpp.o
Compiling .pio\build\firebeetle2\lib7d3\WiFi\WiFiServer.cpp.o
Compiling .pio\build\firebeetle2\lib7d3\WiFi\WiFiUdp.cpp.o
In file included from lib/UI/UI.h:8:0,
from src/SettingsUI.h:4,
from src/SettingsUI.cpp:1:
lib/UI/Elements/Button.h: In constructor 'Button::Appearance::Appearance(const String&, uint16_t, uint16_t, uint16_t, const String&)':lib/UI/Elements/Button.h:17:18: error: 'Button::Appearance::border' will be initialized after [-Werror=reorder]
uint16_t border;
^
lib/UI/Elements/Button.h:14:16: error: 'String Button::Appearance::icon' [-Werror=reorder]
String icon;
^
lib/UI/Elements/Button.h:19:9: error: when initialized here [-Werror=reorder]
Appearance(const String &label, uint16_t color, uint16_t fill, uint16_t border, const String &icon = "")
^
In file included from lib/UI/UI.h:8:0,
from src/LocoByNameUI.h:4,
from src/LocoByNameUI.cpp:1:
lib/UI/Elements/Button.h: In constructor 'Button::Appearance::Appearance(const String&, uint16_t, uint16_t, uint16_t, const String&)':lib/UI/Elements/Button.h:17:18: error: 'Button::Appearance::border' will be initialized after [-Werror=reorder]
uint16_t border;
^
lib/UI/Elements/Button.h:14:16: error: 'String Button::Appearance::icon' [-Werror=reorder]
String icon;
^
lib/UI/Elements/Button.h:19:9: error: when initialized here [-Werror=reorder]
Appearance(const String &label, uint16_t color, uint16_t fill, uint16_t border, const String &icon = "")
^
In file included from lib/UI/UI.h:8:0,
from src/MenuUI.h:4,
from src/MenuUI.cpp:1:
lib/UI/Elements/Button.h: In constructor 'Button::Appearance::Appearance(const String&, uint16_t, uint16_t, uint16_t, const String&)':lib/UI/Elements/Button.h:17:18: error: 'Button::Appearance::border' will be initialized after [-Werror=reorder]
uint16_t border;
^
lib/UI/Elements/Button.h:14:16: error: 'String Button::Appearance::icon' [-Werror=reorder]
String icon;
^
lib/UI/Elements/Button.h:19:9: error: when initialized here [-Werror=reorder]
Appearance(const String &label, uint16_t color, uint16_t fill, uint16_t border, const String &icon = "")
^
In file included from lib/UI/UI.h:8:0,
from src/ProgramUI.h:4,
from src/ProgramUI.cpp:1:
lib/UI/Elements/Button.h: In constructor 'Button::Appearance::Appearance(const String&, uint16_t, uint16_t, uint16_t, const String&)':lib/UI/Elements/Button.h:17:18: error: 'Button::Appearance::border' will be initialized after [-Werror=reorder]
uint16_t border;
^
lib/UI/Elements/Button.h:14:16: error: 'String Button::Appearance::icon' [-Werror=reorder]
String icon;
^
lib/UI/Elements/Button.h:19:9: error: when initialized here [-Werror=reorder]
Appearance(const String &label, uint16_t color, uint16_t fill, uint16_t border, const String &icon = "")
^
Compiling .pio\build\firebeetle2\lib55a\ESP Async WebServer\AsyncEventSource.cpp.o
*** [.pio\build\firebeetle2\src\Locos.cpp.o] Error 1
In file included from lib/UI/UI.h:8:0,
from src/LocoUI.h:5,
from src/LocoUI.cpp:1:
lib/UI/Elements/Button.h: In constructor 'Button::Appearance::Appearance(const String&, uint16_t, uint16_t, uint16_t, const String&)':lib/UI/Elements/Button.h:17:18: error: 'Button::Appearance::border' will be initialized after [-Werror=reorder]
uint16_t border;
^
lib/UI/Elements/Button.h:14:16: error: 'String Button::Appearance::icon' [-Werror=reorder]
String icon;
^
lib/UI/Elements/Button.h:19:9: error: when initialized here [-Werror=reorder]
Appearance(const String &label, uint16_t color, uint16_t fill, uint16_t border, const String &icon = "")
^
In file included from src/SettingsUI.h:4:0,
from src/SettingsUI.cpp:1:
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Header; Args = {int, int, int, int, const char (&)[16]}]':
src/SettingsUI.cpp:10:55: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
return static_cast<T*>(_elements.emplace_back(std::make_unique(_tft, std::forward(args)...)).get());
^
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Label; Args = {int, int, int, int, const char (&)[12]}]':
src/SettingsUI.cpp:12:50: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
In file included from src/LocoByNameUI.h:4:0,
from src/LocoByNameUI.cpp:1:
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Header; Args = {int, int, int, int, const char (&)[12]}]':
src/LocoByNameUI.cpp:9:51: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
return static_cast<T*>(_elements.emplace_back(std::make_unique(_tft, std::forward(args)...)).get());
^
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, char (&)[2]}]':
src/SettingsUI.cpp:13:105: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, short unsigned int&, int, int, const char*}]':
src/LocoByNameUI.cpp:80:70: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Label; Args = {int, int, int, int, const char (&)[10]}]':
src/SettingsUI.cpp:16:49: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, char (&)[12]}]':
src/SettingsUI.cpp:17:106: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Label; Args = {int, int, int, int, const char (&)[13]}]':
src/SettingsUI.cpp:28:52: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Label; Args = {int, int, int, int, const char (&)[21]}]':
src/SettingsUI.cpp:32:60: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, char (&)[14]}]':
src/SettingsUI.cpp:38:95: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
In file included from src/MenuUI.h:4:0,
from src/MenuUI.cpp:1:
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Header; Args = {int, int, int, int, const char (&)[5]}]':
src/MenuUI.cpp:8:44: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
return static_cast<T*>(_elements.emplace_back(std::make_unique(_tft, std::forward(args)...)).get());
^
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, const char (&)[11]}]':
src/MenuUI.cpp:10:47: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, const char (&)[8]}]':
src/MenuUI.cpp:13:46: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, const char (&)[9]}]':
src/MenuUI.cpp:16:47: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Header; Args = {int, int, int, int, const char (&)[12]}]':
src/MenuUI.cpp:25:52: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, const char (&)[3]}]':
src/MenuUI.cpp:27:40: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, const char (&)[4]}]':
src/MenuUI.cpp:30:43: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Header; Args = {int, int, int, int, const char (&)[6]}]':
src/MenuUI.cpp:33:46: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, const char (&)[7], const char (&)[8], bool, Button::State}]':
src/MenuUI.cpp:35:141: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, const char (&)[8], const char (&)[9], bool, Button::State}]':
src/MenuUI.cpp:42:131: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, const char (&)[12], bool, Button::State}]':
src/MenuUI.cpp:56:121: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Header; Args = {int, int, int, int, const char (&)[9]}]':
src/MenuUI.cpp:59:49: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, const char (&)[14]}]':
src/MenuUI.cpp:61:51: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
In file included from src/ProgramUI.h:4:0,
from src/ProgramUI.cpp:1:
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Header; Args = {int, int, int, int, const char (&)[13]}]':
src/ProgramUI.cpp:61:52: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
return static_cast<T*>(_elements.emplace_back(std::make_unique(_tft, std::forward(args)...)).get());
^
cc1plus.exe: some warnings being treated as errors
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, const char (&)[14]}]':
src/ProgramUI.cpp:63:53: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
cc1plus.exe: some warnings being treated as errors
*** [.pio\build\firebeetle2\src\SettingsUI.cpp.o] Error 1
*** [.pio\build\firebeetle2\src\MenuUI.cpp.o] Error 1
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, const char (&)[11]}]':
src/ProgramUI.cpp:66:51: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, const char (&)[10]}]':
src/ProgramUI.cpp:69:50: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, const char (&)[13]}]':
src/ProgramUI.cpp:72:53: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, const char (&)[8]}]':
src/ProgramUI.cpp:88:48: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
cc1plus.exe: some warnings being treated as errors
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Label; Args = {int, int, int, int, const char (&)[11], bool, int}]':
src/ProgramUI.cpp:167:66: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Label; Args = {int, int, int, int, const char*&, bool, short unsigned int&}]':
src/ProgramUI.cpp:172:56: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {int, int, int, int, const char (&)[3]}]':
src/ProgramUI.cpp:173:43: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
*** [.pio\build\firebeetle2\src\LocoByNameUI.cpp.o] Error 1
In file included from lib/UI/UI.h:8:0,
from src/WiFiUI.h:4,
from src/WiFiUI.cpp:1:
lib/UI/Elements/Button.h: In constructor 'Button::Appearance::Appearance(const String&, uint16_t, uint16_t, uint16_t, const String&)':lib/UI/Elements/Button.h:17:18: error: 'Button::Appearance::border' will be initialized after [-Werror=reorder]
uint16_t border;
^
lib/UI/Elements/Button.h:14:16: error: 'String Button::Appearance::icon' [-Werror=reorder]
String icon;
^
lib/UI/Elements/Button.h:19:9: error: when initialized here [-Werror=reorder]
Appearance(const String &label, uint16_t color, uint16_t fill, uint16_t border, const String &icon = "")
^
src/LocoUI.cpp: In member function 'virtual void LocoUI::swipe(UI::Swipe)':
src/LocoUI.cpp:229:10: warning: enumeration value 'NONE' not handled in switch [-Wswitch]
switch (swipe) {
^
cc1plus.exe: some warnings being treated as errors
*** [.pio\build\firebeetle2\src\ProgramUI.cpp.o] Error 1
In file included from src/LocoUI.h:5:0,
from src/LocoUI.cpp:1:
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Header; Args = {int, int, int, int, String&}]':
src/LocoUI.cpp:30:42: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
return static_cast<T*>(_elements.emplace_back(std::make_unique(_tft, std::forward(args)...)).get());
^
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Label; Args = {int, int, int, int, const char (&)[7]}]':
src/LocoUI.cpp:32:44: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Label; Args = {int, int, int, int}]':
src/LocoUI.cpp:33:49: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Label; Args = {int, int, int, int, const char (&)[11]}]':
src/LocoUI.cpp:35:50: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Button; Args = {short unsigned int&, short unsigned int&, int, int, Button::Appearance, Button::Appearance, bool&, Button::State}]':
src/LocoUI.cpp:132:9: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
In file included from src/WiFiUI.cpp:1:0:
src/WiFiUI.h: At global scope:
src/WiFiUI.h:33:1: error: expected ';' after class definition
}
^
src/ThrottleServer.cpp: In lambda function:
src/ThrottleServer.cpp:61:36: error: 'class fs::File' has no member named 'path'
list.add(String(listFile.path()));
^
src/ThrottleServer.cpp:74:42: error: 'class fs::File' has no member named 'path'
item["file"] = String(listFile.path());
^
In file included from lib/UI/UI.h:8:0,
from src/main.cpp:15:
lib/UI/Elements/Button.h: In constructor 'Button::Appearance::Appearance(const String&, uint16_t, uint16_t, uint16_t, const String&)':lib/UI/Elements/Button.h:17:18: error: 'Button::Appearance::border' will be initialized after [-Werror=reorder]
uint16_t border;
^
lib/UI/Elements/Button.h:14:16: error: 'String Button::Appearance::icon' [-Werror=reorder]
String icon;
^
lib/UI/Elements/Button.h:19:9: error: when initialized here [-Werror=reorder]
Appearance(const String &label, uint16_t color, uint16_t fill, uint16_t border, const String &icon = "")
^
cc1plus.exe: some warnings being treated as errors
*** [.pio\build\firebeetle2\src\LocoUI.cpp.o] Error 1
In file included from src/main.cpp:19:0:
src/WiFiUI.h: At global scope:
src/WiFiUI.h:33:1: error: expected ';' after class definition
}
^
In file included from src/WiFiUI.h:4:0,
from src/WiFiUI.cpp:1:
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Header; Args = {int, int, int, int, const char (&)[12]}]':
src/WiFiUI.cpp:18:51: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
return static_cast<T*>(_elements.emplace_back(std::make_unique(_tft, std::forward(args)...)).get());
^
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Label; Args = {int, int, int, int, const char (&)[1], bool}]':
src/WiFiUI.cpp:20:58: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Header; Args = {int, int, int, int, const char (&)[21]}]':
src/WiFiUI.cpp:25:61: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Label; Args = {int, int, int, int, const char (&)[20], bool}]':
src/WiFiUI.cpp:27:69: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Label; Args = {int, int, int, int, const char (&)[19], bool}]':
src/WiFiUI.cpp:28:72: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Label; Args = {int, int, int, int, const char (&)[21], bool}]':
src/WiFiUI.cpp:29:70: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
lib/UI/UI.h: In instantiation of 'T* UI::addElement(Args&& ...) [with T = Label; Args = {int, int, int, int, const char (&)[40], bool}]':
src/WiFiUI.cpp:33:85: required from here
lib/UI/UI.h:23:114: error: invalid use of 'void'
src/main.cpp: In function 'void setup()':
src/main.cpp:357:6: error: 'ARDUINO_EVENT_WIFI_STA_CONNECTED' was not declared in this scope
}, ARDUINO_EVENT_WIFI_STA_CONNECTED);
^
src/main.cpp:363:6: error: 'ARDUINO_EVENT_WIFI_STA_DISCONNECTED' was not declared in this scope
}, ARDUINO_EVENT_WIFI_STA_DISCONNECTED);
^
*** [.pio\build\firebeetle2\src\ThrottleServer.cpp.o] Error 1
cc1plus.exe: some warnings being treated as errors
*** [.pio\build\firebeetle2\src\WiFiUI.cpp.o] Error 1
cc1plus.exe: some warnings being treated as errors
*** [.pio\build\firebeetle2\src\main.cpp.o] Error 1
==================================================== [FAILED] Took 12.22 seconds ====================================================

  • The terminal process "C:\Users\John.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1.
  • Terminal will be reused by tasks, press any key to close it.

README.md - RE: "This battery has the terminals the correct way but before connecting any battery check the wires are the right way round on the plug"

[For your review - This may clarify what the user should do to ensure the positive voltage is in the correct position.]

The JST-PHR-2P Li-Po battery connector has a red-colored lead representing the positive polarity and when plugged into the socket on the side of the FireBeetle2, should face the back (toward the ESP32 chip) There is a Plus (+) indicator on the underside of the board indicating the battery positive connection.

The user may use a Volt-Ohm-Meter (VOM) to measure the voltage (if charged) to ensure the positive voltage is at the red wire and in the right position (when looking at the connector head-on).

Disable swipe option

Sometimes I have noticed that I accidently swipe on the screen and it can get a little annoying.

Could you possibly make a button in the settings so you could disable swipe?

Issue with paging in loco list

When the number of trains is a multiple of 8, not all locos are visible in the list.
For example when there are a total of 16 locos defined, only 2 pages of 7 locos are created. Adding a 17th logo adds a 3rd page with 3 locos, thus 17 are visible.

The same issue happens with 24 locos.
The same issue is also present in the groups list, when a multiple of 8 locos are added to a group.

Upload instructions

Iam only really a begginer with using esp32's it would be nice if you could make a step by step instructions to even a video showing how to uploading the code to the esp!

Exhausting Heat In The Throttle Case, Being Able To See the LEDs, and Pushing the RST button on the FireBeetle2

Is your feature request related to a problem? Please describe.
The case encloses electronic components that generate heat and there are no holes/slots for the heat to escape.

Describe the feature you'd like

  1. Perhaps a small slot on the side opposited the switch and USB-C socket would allow heat to escape.
    FireBeelte2 - ESP32-E - Max Discharge Current: [email protected] LDO
    FireBeetle2 - ESP32-E -Max Charge Current: 500mA

  2. Is the LED on the FireBeetle 2 used to signal errors in uploading the code2.
    If so, maybe there could be a way for a small hole to be drilled, so the user could see the light or maybe the screen could provide a warning that the reset button wouldd have to be pushed. Maybe the battery could be moved down so a rod couild be poked into a hole in the base to momentarily reset the switch.

Additional context
Add any other context or screenshots about the feature request here.

Docs - Names of files are one word but titles in files are more descriptive

Is your feature request related to a problem? Please describe.
I have to read the file to understand what it does - I think the file name should describe what the file contents is describing.

Describe the feature you'd like

Original File Name - New file name

Assembly - WiFi_Throttle_Assembly
Code - Uploading_The_WiFi_Throttle_Code
Locos - Setting_Up_And_Managing_Locos
Menu - WiFI_Throttle_Menu
Decoder Programming - Programming_The_Loco_Decoder
Running - Running_Locos
Settings - WiFi_Throttle_Settings
Setup - WiFi_Throttle_Setup

If you are worried about spaces in the file names , use underscores for spaces (as I suggest).

I also strongly feel that you should use the word "WiFi" in your documentation to emphasize that this is an untethered wireless throttle.

I am in awe when I touch the throttle case components; you did an excellent job in planning and creating the case components - particularly the frame to hold the FireBeetle2, the accelerometer, the rotary encoder and the switch. Kudos to you!

Simplifying Network Connectivity

It would be nice if, when users input the network name for the command station, the controller could display a list of available networks, simplifying and expediting the network selection process.

Browser based code upload

Investigate https://github.com/esphome/esp-web-tools for possible uploading of firmware using a browser.

Notes:

  • Would require the throttle WiFi SSID and pass to be generated on the throttle.
  • Serial support currently only in Chromium based browsers.

TODO:

  • Move throttle AP SSID and password generation to the throttle
  • Make python script to build and merge into single binary
  • Remove conditional defines as they're no use with a binary build, accelerometer and mask password.
  • Test python script to build combined binary that can be used by esp-web-tools
  • Update docs with instructions for uploading via browser
  • Testing of merged binary

Throttle setup page becomes unreachable when on local wireless network

Describe the bug
When throttle is connected to wireless network (not in AP mode for setup), throttle receives IP address, setup web page is reachable for 30-60 seconds, then becomes unreachable. Device still pings, but performing telnet to port 80 results in unreachable.

To Reproduce
Steps to reproduce the behavior:

  1. Join throttle to wireless network
  2. Perform network scan to determine IP address
  3. Open web browser to throttles IP address
  4. Wait for several minutes/try navigating webpage
  5. Wait for webpage to time out

Expected behavior
Throttle setup remains reachable for as long as throttle is powered on and connected to wireless network.

Screenshots or debug output
If applicable, add screenshots or debug output to help explain your problem.
Debug output can be obtained from the serial monitor

Additional info

  • Component: All items purchased from links on Github page
  • Firebettle 2 version 1.0

Sta mode IP address for throttle

In setting up for sta mode IE using my home network the use of DNS didn't work so dccex couldn't be found.

So it changed to sta mode .however what is it's on home network IP address ..I couldn't find it using advanced op scanner?..

I edited the SD card to insert the real IP address of the C's and that worked.

However to manage locos I need to access the throttles web page...without it appearing on the scan I'm stuck.

Any advice?

Throttle will not reconnect after turning off then back on.

Describe the bug

I don't know if this is a DCC-EX "thing" or a problem with the throttle itself. When I turn on the DCC-EX power supply and then turn one of my throttles on everything works as it should. I can turn the main and program tracks on and off and all other functions work fine. I then turn off the throttle and set it aside for a while leaving DCC-EX on. When I come back and turn the throttle back on it does not connect to the power supply. The icon showing connection to the PS shows connected but no functions work. After a short time the connection changes to showing disconnected.

BOTH of the throttles I currently have working show this behavior. Only way to get throttles to reconnect to the power supply is to power cycle it. As stated, this may actually be a DCC-EX bug. Not sure.....

To Reproduce
Steps to reproduce the behavior:

  1. Turn DCC-EX on.
  2. Turn on the throttle and it connects and functions. Turn either main or program tracks on. (or both)
  3. Turn throttle off leaving DCC-EX in track on state.
  4. Come back after a bit, turn throttle back on.
  5. Throttle does not connect to or control DCC-EX.

Expected behavior
Throttle should connect and function.

This is repeatable and constant.

Additional info

  • Component: Throttles built as per this website instructions. DCC-EX built as per the instructions there. Recommended Wi-Fi shield and latest version of the DCC-EX software.

Wi-Fi does not connect if password contains "$"

Describe the bug
When entering wireless password for the local Wi-Fi network (not Wi-Fi broadcasted from DCC EX system) and it contains a "$" the wireless network does not connect.

To Reproduce
Steps to reproduce the behavior:

  1. Create wireless network with password containing "$"
  2. Navigate to throttle setup
  3. Enter Wi-Fi name and its associated password that contains "$"
  4. Save settings
  5. Watch Wi-Fi not connect

Expected behavior
Wireless connects to network.

Screenshots or debug output
If applicable, add screenshots or debug output to help explain your problem.
Debug output can be obtained from the serial monitor

Additional info
NotWorking
Working

  • Component: All purchased from links provided
  • FireBettle version 1.0

Multiple EX-TC-WiFi throttles.... Same hostname.

Is your feature request related to a problem? Please describe.
When you have more than one of these they all have the same hostname. This can be a problem when trying to access the web config.

Describe the feature you'd like
The ability to define a custom hostname per throttle.

Additional context
I'm sure this is possible but unsure where to define this before uploading the code.

Cannot seem to upload the filesystem

Hi, not sure if something is missing or just my lack of knowledge! I tried to upload the filesystem but I don’t have the option in platformio. I tried to read up on it and I see it needs the files in the data folder. I see that this exists and the subfolders but I don’t see any css or other file in the data root folder. Should there be one for platformio to detect?? Any help gratefully received! Thanks in advance

Random communication problems with EX-CommandStation ?

When I use the throttle, I randomly encounter speed adjustment issues.
When I want to slow down, the display of the notches behaves erratically and increases the speed instead of reducing it. For example, if I am on speed step 30 and want to reduce the speed to step 26 or 20, the display of the speed step indeed decreases but then, a fraction of a second later, it increases by the value I wanted to decrease and accelerates the locomotive. I have checked the quality of the encoder connections, and there is nothing to report on that front. When I use the JMRI throttle or WiThrottle on my phone (also via a wifi connection), I do not have this problem.
Could this be a software issue? If so, how can I assist in resolving it by producing logs?
Or could the encoder be defective (I do not have a spare part to test)?

Hardware used:
DFRobot EC11 Rotary Encoder SEN0235
DFRobot FireBeetle 2 ESP32-E DFR0654-F

Command station V5.0.7-Prod

Otherwise, a huge thank you for this amazing project of great quality, which deserves to be better known!

SD card format for LCD Touchscreen and contents directory

I am following your project and replicating the DCC WiFi Throttle. I will send you an email on my correspondence re: the 3D case. You may find it interesting.

  1. I need to know what type of format the MicroSD card for the Touchscreen display should be in - FAT12, FAT16, FAT32 or some other format. I decided to use FAT32 for an 8GB MicroSD card
  2. . The list below depicts the format of files on the SD card, so the user can see a /icon folder containg the icon .bmp files and a default.json base file. You may wish to add this to your explanation " This needs to be the contents of the sd folder and not the folder itself, the files need to be copied to the root of the SD card."
  3. I truely appreciate the work you have done to help the hobby and me.4.

/icons/brake-off.bmp
/icons/brake-on.bmp
/icons/bulb-off.bmp
/icons/bulb-on.bmp
/icons/compressor-off.bmp
/icons/compressor-on.bmp
/icons/engine-off.bmp
/icons/engine-on.bmp
/icons/fan-off.bmp
/icons/fan-on.bmp
/icons/flange-squeal-off.bmp
/icons/flange-squeal-on.bmp
/icons/horn-off.bmp
/icons/horn-on.bmp
/icons/two-horn-off.bmp
/icons/two-horn-on.bmp
/icons/whistle-off.bmp
/icons/whistle-on.bmp
default.json

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.