DCC-EX / CommandStation-EX

EX-CommandStation firmware from DCC-EX. Includes support for WiFi and a standalone WiThrottle server. A complete re-write of the original DCC++.
https://dcc-ex.github.io/
GNU General Public License v3.0
152 stars 103 forks source link

Giga onboard Wifi, and signal updates. #364

Closed travis-farmer closed 7 months ago

travis-farmer commented 8 months ago

just tested with a Loco, and it seems fully working now. a few changes were needed for WiFi_NINA, that work on the Giga. need to make sure they work on other STM32 hardware, just to make sure the changes are not cross-platform breaking.

Note, the Giga has a uFL antenna connector for an external antenna. there is no onboard antenna, though all new Giga's come with a basic antenna. handy if you want to add a uFL to SMA adapter for an external SMA antenna, in case project is inside a metal enclosure.

travis-farmer commented 8 months ago

just a second note: the user can toggle between onboard WiFi (Wifi_NINA) and esp wifi. having the following in config.h: #define WIFI_NINA true will enable Wifi_NINA, and in so doing, the Giga's Onboard WiFI.

travis-farmer commented 8 months ago

Sadly, upon further testing, it handles only one client... Crashes when JMRI and then EngineDriver connect... 👎

travis-farmer commented 8 months ago

Giga WiFi WORKS, for up to 3 MAX clients (hardware limits?). working on cleaning it up with Chris. :-)

travis-farmer commented 8 months ago

commit #4430e9a Comment: config option "#define GIGA_WIFI true" works for giga, up to 3 clients connected. config option "#define WIFI_NINA true" untested on giga until i get hardware. only committed to save.

travis-farmer commented 8 months ago

back to draft, while i sort out some issues.

travis-farmer commented 8 months ago

ok, tested for compile with UNO (size failure? odd), MEGA, and Giga. i worked on some experimental code, that currently compiles, but does not work. it is activated with an XGIGA define in config, so i or somebody else can play with it, and swap back and forth. really, i need somebody with better coding experience than i, to look it all over, and experiment with it, with me, that HAS A GIGA. i know it is a very expensive board, but for better progress, i need a second set of eyes, with hands-on access to test as well. a one-sided test-develop-debug-support system is doomed to fail.

i will keep developing for the Giga, as best as i can, but if it goes to beta-testers, they need to be code-capable, and i will need to draft up a write-up of what i know works, what i know does not, with the extent known of each. i submit this pull-request to get my work onto the DCC-EX:devel-giga branch, so others can work with it.

travis-farmer commented 7 months ago

Converted back to draft, as i am working on a huge improvement that needs to be included overall to the devel-giga branch, once tested to work correctly that is.

travis-farmer commented 7 months ago

Marking Ready for review, so this can be brought into the dcc-ex:devel-giga repo for further testing. hopefully soon, before i make more changes ;-)

Tested with 8 track signals, all produced DCC. tested one of the tracks with DC, and got a very pretty inverted PWM.

travis-farmer commented 7 months ago

WiFiNINA Library from Adafruit, with their shield, is not recommend at this time, but the signal code needs to get into the DCC-EX:devel-giga repo branch. the Giga onboard WiFi is only good for 3 clients, and the WiFiNINA board accepts 9 clients, but it presents new issues when configuring the CS, where it somehow takes up all the clients. this only takes place when the WiFiNINA board and library are used.