Nick A Posted Sunday at 09:41 PM Posted Sunday at 09:41 PM (edited) Hi Mark Modify your /boot/dtb/allwinner/overlay/openvfd.dts . You need to change the display-type. I can't really tell by the image you took which chip the display is using. If you can check again. It's the chip beside the LED display. https://github.com/arthur-liberman/vfd-configurations/?tab=readme-ov-file#display-type Try this see what happens... ( ID=01, A display like on the Sunvell T95m. It is similar to T95U, but the icons are positioned differently, and the digits are "upside down".) openvfd_display_type = <0x01000000>; Edited Monday at 03:55 PM by Nick A 0 Quote
Mark Waples Posted Monday at 06:07 PM Author Posted Monday at 06:07 PM (edited) 20 hours ago, Nick A said: openvfd_display_type = <0x01000000>; Hi Nick, that didn't work but thanks for the suggestion. I now have a clock of sorts just showing the basic 12:15 format with a flashing cursor but I do not get the WIFI, ETHERNET, OR BOOT Where I was going wrong was that I should have recompiled the dts file after making any changes and then rebooting the box /boot/dtb/allwinner/overlay/openvfd.dts recompile using this command armbian-add-overlay /boot/dtb/allwinner/overlay/openvfd.dts and then reboot My contents of /boot/dtb/allwinner/overlay/openvfd.dts /dts-v1/; /plugin/; / { fragment@0 { target-path = "/"; __overlay__ { openvfd { compatible = "open,vfd"; dev_name = "openvfd"; openvfd_gpio_clk = <&pio 8 11 0>; openvfd_gpio_dat = <&pio 8 12 0>; vfd_gpio_chip_name = "0300b000.pinctrl"; openvfd_chars = [03 01 02 03 04]; openvfd_dot_bits = [00 01 02 03 04 05 06]; openvfd_display_type = <0x03000001>; status = "okay"; }; }; }; }; I don't understand the logic of : openvfd_Characters = openvfd_dot_bits = openvdf_display type = It seems to have a mind of its own, I think this gives me a display.type = 1, display.controller = 3 openvfd_display_type = <0x03000001>; I can't get my head around the logic #chars: # < DHHMM > Order of display chars (D=dots, represented by a single char) vfd_chars='0,4,3,2,1' #dot_bits: # Order of dot bits. Typical configurations: # Display Type 0, 1 usually has Alarm, USB, Play, Pause, Col, Ethernet, Wifi dots # Alarm = 0, USB = 1, Play = 2, Pause = 3, Col = 4, Eth = 5, Wifi = 6 # Display Type 2 usually has APPS, USB, SETUP, CARD, Col, HDMI, CVBS dots # APPS = 0, USB = 1, SETUP = 2, CARD = 3, Col = 4, HDMI = 5, CVBS = 6 # Display Type 3 Power, LAN, Col, Low Wifi, High Wifi # N/A = 0, N/A = 1, Power = 2, LAN = 3, Col = 4, Low Wifi = 5, High Wifi = 6 vfd_dot_bits='0,1,2,3,4,5,6' #display_type: # [0] - Display type. # [1] - Reserved - must be 0.. # [2] - Flags. (bit 0 = '1' - Common Anode display) # [3] - Controller. vfd_display_type='0x01,0x00,0x00,0x03' I assume the other characters can be shown but I cannot work that out at the moment - and I am assuming the word "Boot" is loaded to the screen - How it achieves that I don't know - I would have thought that would have been contrrolled by the driver. I may be out on a limb on that theory. Ah well a little more progress today... Edited Monday at 06:28 PM by Mark Waples 0 Quote
Nick A Posted Monday at 08:52 PM Posted Monday at 08:52 PM (edited) Can you look for the display controller chip on your board. This will at least give us a starting point. Then we can find other boards with a similar chip. Also, a picture of your front display would help. This README describes the values better. https://github.com/arthur-liberman/vfd-configurations/blob/master/README.md I forgot about the command armbian-add-overlay. When I was playing with openvfd I didn't use an overlay file. I added the openvfd node directly to my boards dts. I didn't need to make any changes because I used the original openvfd settings. Edited Monday at 09:04 PM by Nick A 0 Quote
Mark Waples Posted Tuesday at 09:42 AM Author Posted Tuesday at 09:42 AM 12 hours ago, Nick A said: Can you look for the display controller chip on your board. This will at least give us a starting point. Then we can find other boards with a similar chip. Also, a picture of your front display would help. This README describes the values better. https://github.com/arthur-liberman/vfd-configurations/blob/master/README.md I forgot about the command armbian-add-overlay. When I was playing with openvfd I didn't use an overlay file. I added the openvfd node directly to my boards dts. I didn't need to make any changes because I used the original openvfd settings. Hi Nick, thank you for the reply. The LED driver chip is a AIP650E0 and here is the LED Display - wifi/network - clock - USB 0 Quote
Nick A Posted Tuesday at 10:15 PM Posted Tuesday at 10:15 PM (edited) I'm pretty sure your controller is FD650 ID=3. I found this forum thread. Someone had a similar LED Display like yours. HAV's posted a few pictures of his display. I don't think he had PLAY/PAUSE icons because there's not enough room on his display. "The only icon that doesn’t work now is the play/pause one. I also can’t test the wifi because it doesn’t work." https://discourse.coreelec.org/t/how-to-configure-vfd/427/924 If we still have issues after playing around with the dot_bits. We might need to add another Display Type with only WIFI, Ethernet, Col, USB icons. https://github.com/arthur-liberman/linux_openvfd/blob/master/driver/controllers/fd650.c static void fd650_set_icon(const char *name, unsigned char state) { struct vfd_dtb_config *dtb = &dev->dtb_active; switch (dtb->display.type) { case DISPLAY_TYPE_5D_7S_NORMAL: case DISPLAY_TYPE_5D_7S_T95: case DISPLAY_TYPE_5D_7S_G9SX: if (strncmp(name,"alarm",5) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT1_ALARM]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT1_ALARM]); } else if (strncmp(name,"usb",3) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT1_USB]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT1_USB]); } else if (strncmp(name,"play",4) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT1_PLAY]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT1_PLAY]); } else if (strncmp(name,"pause",5) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT1_PAUSE]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT1_PAUSE]); } else if (strncmp(name,"colon",5) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT1_SEC]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT1_SEC]); } else if (strncmp(name,"eth",3) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT1_ETH]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT1_ETH]); } else if (strncmp(name,"wifi",4) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT1_WIFI]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT1_WIFI]); } break; case DISPLAY_TYPE_5D_7S_X92: if (strncmp(name,"apps",4) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT2_APPS]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT2_APPS]); } else if (strncmp(name,"setup",5) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT2_SETUP]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT2_SETUP]); } else if (strncmp(name,"usb",3) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT2_USB]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT2_USB]); } else if (strncmp(name,"sd",2) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT2_CARD]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT2_CARD]); } else if (strncmp(name,"colon",5) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT2_SEC]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT2_SEC]); } else if (strncmp(name,"hdmi",4) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT2_HDMI]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT2_HDMI]); } else if (strncmp(name,"cvbs",4) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT2_CVBS]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT2_CVBS]); } break; case DISPLAY_TYPE_5D_7S_ABOX: if (strncmp(name,"power",5) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT3_POWER]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT3_POWER]); } else if (strncmp(name,"eth",3) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT3_LAN]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT3_LAN]); } else if (strncmp(name,"colon",5) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT3_SEC]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT3_SEC]); } else if (strncmp(name,"wifi",4) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT3_WIFIHI] | dtb->led_dots[LED_DOT3_WIFILO]) : (dev->status_led_mask & ~(dtb->led_dots[LED_DOT3_WIFIHI] | dtb->led_dots[LED_DOT3_WIFILO])); } break; case DISPLAY_TYPE_5D_X96_X9: if (strncmp(name,"apps",4) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT5_APPS]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT5_APPS]); } else if (strncmp(name,"usb",3) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT5_USB]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT5_USB]); } else if (strncmp(name,"sd",2) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT5_CARD]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT5_CARD]); } else if (strncmp(name,"colon",5) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT5_SEC]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT5_SEC]); } else if (strncmp(name,"eth",3) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT5_ETH]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT5_ETH]); } else if (strncmp(name,"wifi",4) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT5_WIFIHI] | dtb->led_dots[LED_DOT5_WIFILO]) : (dev->status_led_mask & ~(dtb->led_dots[LED_DOT5_WIFIHI] | dtb->led_dots[LED_DOT5_WIFILO])); } break; case DISPLAY_TYPE_5D_7S_M9_PRO: if (strncmp(name,"b-t",3) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT4_BT]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT4_BT]); } else if (strncmp(name,"eth",3) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT4_ETH]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT4_ETH]); } else if (strncmp(name,"wifi",4) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT4_WIFI]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT4_WIFI]); } else if (strncmp(name,"spdif",5) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT4_SPDIF]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT4_SPDIF]); } else if (strncmp(name,"colon",5) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT4_SEC]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT4_SEC]); } else if (strncmp(name,"hdmi",4) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT4_HDMI]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT4_HDMI]); } else if (strncmp(name,"cvbs",4) == 0) { dev->status_led_mask = state ? (dev->status_led_mask | dtb->led_dots[LED_DOT4_AV]) : (dev->status_led_mask & ~dtb->led_dots[LED_DOT4_AV]); } break; default: if (strncmp(name,"colon",5) == 0) dev->status_led_mask = state ? (dev->status_led_mask | ledDots[LED_DOT_SEC]) : (dev->status_led_mask & ~ledDots[LED_DOT_SEC]); break; } } https://github.com/arthur-liberman/linux_openvfd/blob/master/driver/openvfd_drv.h enum { DISPLAY_TYPE_5D_7S_NORMAL, // T95U DISPLAY_TYPE_5D_7S_T95, // T95K is different. DISPLAY_TYPE_5D_7S_X92, DISPLAY_TYPE_5D_7S_ABOX, DISPLAY_TYPE_FD620_REF, DISPLAY_TYPE_4D_7S_COL, DISPLAY_TYPE_5D_7S_M9_PRO, DISPLAY_TYPE_5D_7S_G9SX, DISPLAY_TYPE_4D_7S_FREESATGTC, DISPLAY_TYPE_5D_7S_TAP1, DISPLAY_TYPE_5D_X96_X9, DISPLAY_TYPE_MAX, }; enum { LED_DOT1_ALARM, LED_DOT1_USB, LED_DOT1_PLAY, LED_DOT1_PAUSE, LED_DOT1_SEC, LED_DOT1_ETH, LED_DOT1_WIFI, LED_DOT1_MAX }; enum { LED_DOT2_APPS, LED_DOT2_SETUP, LED_DOT2_USB, LED_DOT2_CARD, LED_DOT2_SEC, LED_DOT2_HDMI, LED_DOT2_CVBS, LED_DOT2_MAX }; enum { LED_DOT3_UNUSED1, LED_DOT3_UNUSED2, LED_DOT3_POWER, LED_DOT3_LAN, LED_DOT3_SEC, LED_DOT3_WIFIHI, LED_DOT3_WIFILO, LED_DOT3_MAX }; enum { LED_DOT4_BT, LED_DOT4_ETH, LED_DOT4_WIFI, LED_DOT4_SPDIF, LED_DOT4_SEC, LED_DOT4_HDMI, LED_DOT4_AV, LED_DOT4_MAX }; enum { LED_DOT5_APPS, LED_DOT5_ETH, LED_DOT5_USB, LED_DOT5_CARD, LED_DOT5_SEC, LED_DOT5_WIFIHI, LED_DOT5_WIFILO, LED_DOT5_MAX }; Edited Wednesday at 01:10 AM by Nick A 0 Quote
Mark Waples Posted Wednesday at 04:27 PM Author Posted Wednesday at 04:27 PM (edited) 18 hours ago, Nick A said: If we still have issues after playing around with the dot_bits. We might need to add another Display Type with only WIFI, Ethernet, Col, USB icons. Hi NIck, I have tried all manner of combinations of dot-bits - to the point I must have re-booted about 100 times!!! I'm pretty sure your controller is FD650 ID=3. I think you are correct With this thread below I think they have updated their own resources but not fed that back to the original github for Openvfd https://github.com/arthur-liberman/linux_openvfd I found this forum thread. Someone had a similar LED Display like yours. HAV's posted a few pictures of his display. I don't think he had PLAY/PAUSE icons because there's not enough room on his display. "The only icon that doesn’t work now is the play/pause one. I also can’t test the wifi because it doesn’t work." https://discourse.coreelec.org/t/how-to-configure-vfd/427/924 I have contacted Arthur-liberman for his comments: https://github.com/arthur-liberman/vfd-configurations/issues/20 let's see what comes back and if needs be I am prepared to have a go at adding a new type of LED. I guess it will have to be recompiled after changes are made to the source code. Kind regards, Mark Edited Wednesday at 04:32 PM by Mark Waples 0 Quote
Nick A Posted Wednesday at 05:44 PM Posted Wednesday at 05:44 PM (edited) I found another thread https://discourse.coreelec.org/t/how-to-configure-vfd/427/726 If you read the reply here. Quote Thanks. I’ll have to think what can be done to enable the icons, it’s going to require driver changes. So it may take time. https://discourse.coreelec.org/t/how-to-configure-vfd/427/732 Try these settings for chars and dot_bits.. This was the config they used. They didn't give us any details on the changes they made to the driver sources. Maybe the current driver already has the changes? We could message TheCoolest and ask him. https://discourse.coreelec.org/uploads/short-url/6Lof0boBxj2HuBDGQ32mKN5Rka7.conf # This file must be renamed to vfd.conf and placed in the /storage/.config/ folder. # # Tanix TX3 Mini - S905L configuration #-------------------- #gpio_xxx: # [0] 0 = &gpio, 1 = &gpio_ao. # [1] pin number - https://github.com/openSUSE/kernel/blob/master/include/dt-bindings/gpio/meson-gxl-gpio.h # [0] Reserved - must be 0. vfd_gpio_clk='1,9,0' vfd_gpio_dat='1,6,0' vfd_gpio_stb='0,0,0xFF' #chars: # < DHHMM > Order of display chars (D=dots, represented by a single char) vfd_chars='2,4,3,2,1' #dot_bits: # Order of dot bits. Typical configurations: # Display Type 0, 1 usually has Alarm, USB, Play, Pause, Col, Ethernet, Wifi dots # Alarm = 0, USB = 1, Play = 2, Pause = 3, Col = 4, Eth = 5, Wifi = 6 # Display Type 2 usually has APPS, USB, SETUP, CARD, Col, HDMI, CVBS dots # APPS = 0, USB = 1, SETUP = 2, CARD = 3, Col = 4, HDMI = 5, CVBS = 6 # Display Type 3 Power, LAN, Col, Low Wifi, High Wifi # N/A = 0, N/A = 1, Power = 2, LAN = 3, Col = 4, Low Wifi = 5, High Wifi = 6 # Position: 0 1 2 3 4 5 6 vfd_dot_bits='0,1,4,5,6,2,3' #display_type: # [0] - Display type. # [1] - Reserved - must be 0.. # [2] - Flags. (bit 0 = '1' - Common Anode display) # [3] - Controller. vfd_display_type='0x01,0x00,0x00,0x03' Edited Wednesday at 06:38 PM by Nick A 0 Quote
Mark Waples Posted Wednesday at 07:44 PM Author Posted Wednesday at 07:44 PM (edited) Hi Nick, that didn't work but thanks for the suggestion. I think Coolest is the same person as arthur or is using the same url? The Coreelc plugin is written in Python I think I have attached a copy that I grabbed from the git service.openvfd-1.0.6.tar Edited Wednesday at 07:49 PM by Mark Waples 0 Quote
AlexYMo99 Posted Wednesday at 11:45 PM Posted Wednesday at 11:45 PM Hi Nick, sorry for joining the conversation with a kinda unrelated topic, I tried your image (24.11.0) in the transpeed h618 tv box and it worked without any issue however wifi doesnt seem to work. I have to say that i havent tried much other than trying the desktop and server images, installing the network manager, etc. Is there anything in particular that i need to do in order to get wifi working?, thanks in advance. 0 Quote
Nick A Posted 23 hours ago Posted 23 hours ago (edited) Hi AlexYMo99 Your transpeed box has a different wifi chip. Maybe this will help. Check your dmesg it will tell you which firmware you need. It's probably already included in armbian. Just needs a name change. Edited 23 hours ago by Nick A 0 Quote
Nick A Posted 23 hours ago Posted 23 hours ago (edited) Hi Mark It looks like that python script might be using these commands. Try these commands maybe they'll work for you. https://github.com/arthur-liberman/linux_openvfd/blob/9264588ba27a964a1e56346202901dd17f9e133d/led_control.txt Edited 23 hours ago by Nick A 0 Quote
AlexYMo99 Posted 19 hours ago Posted 19 hours ago Hi Nick It just so happened that i stumbled uppon a comment of yours mentioning that, so i did exactly that (the only difference being that i did it by renaming and copying the files from the Libreelec github instead of just renaming them) and it worked!. I was even able to flash it to the EMMC with no issues at the moment, the only thing is that the tv box seems to power on randomly after a couple of secconds or gives power to the usb after a while, but i thing that is not related to armbian. Im planning to use it for klipper so it was amazing being able to make it work, you are amazing, really appreciate you man! 0 Quote
Mark Waples Posted 25 minutes ago Author Posted 25 minutes ago (edited) HI Nick 23 hours ago, Nick A said: Hi Mark It looks like that python script might be using these commands. Try these commands maybe they'll work for you. https://github.com/arthur-liberman/linux_openvfd/blob/9264588ba27a964a1e56346202901dd17f9e133d/led_control.txt I think that when I compile linux_openvfd it performs a cleanup and removes the *ko files clean: rm -rf *.o *.ko .tmp_versions *.mod.c modules.order Module.symvers ssd253x-ts.* The instructions state: Execution instructions: insmod openvfd.ko ./OpenVFDService & (run OpenVFDService Daemon to show time) ./OpenVFDService -t & (run OpenVFDService Daemon in test mode) Turn led indicators on/off: 1. Alarm led: echo alarm > /sys/class/leds/openvfd/led_on echo alarm > /sys/class/leds/openvfd/led_off 2. WiFi led: echo wifi > /sys/class/leds/openvfd/led_on echo wifi > /sys/class/leds/openvfd/led_off 3. Ethernet led: echo eth > /sys/class/leds/openvfd/led_on echo eth > /sys/class/leds/openvfd/led_off 4. Pause led: echo pause > /sys/class/leds/openvfd/led_on echo pause > /sys/class/leds/openvfd/led_off 5. Play led: echo play > /sys/class/leds/openvfd/led_on echo play > /sys/class/leds/openvfd/led_off 6. USB led: echo usb > /sys/class/leds/openvfd/led_on echo usb > /sys/class/leds/openvfd/led_off 7. Apps led: echo apps > /sys/class/leds/openvfd/led_on echo apps > /sys/class/leds/openvfd/led_off 8. Setup led: echo setup > /sys/class/leds/openvfd/led_on echo setup > /sys/class/leds/openvfd/led_off 9. Card led: echo sd > /sys/class/leds/openvfd/led_on echo sd > /sys/class/leds/openvfd/led_off 10. HDMI led: echo hdmi > /sys/class/leds/openvfd/led_on echo hdmi > /sys/class/leds/openvfd/led_off 11. CVBS led: echo cvbs > /sys/class/leds/openvfd/led_on echo cvbs > /sys/class/leds/openvfd/led_off Note: Some displays have indicators 1 - 6, and others 6 - 11. There is no overlap, and you can't trigger an indicator that does not exist on your display type. If I try and install the module into the kernal as per instructions as Insmod openvfd.ko root@transpeed-8k618-t:~# insmod openvfd.ko insmod: ERROR: could not load module openvfd.ko: No such file or directory And the useage is vague? I guess each icon is a number - but how you would call that out, unless it's controlled by the dts configuration? Kind regards, Mark Edited 23 minutes ago by Mark Waples 0 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.