Hey all, This is great news ... really great!
It should be very possible in that case to reuse the driver I have been developing for the WMR89. The arduino sketch I was developing was just dumping the sensor data to the wire anyway. If that is all the base station is doing, it should be possible to reuse as is. Going to send a tidied up v2 next week, that should be perfect for this purpose. BTW I don't think the idea of using the Arduino is completely dead as in my experience the base station is pretty lossey. But decoding the base station is definitely the the first priority! Ray K On Thursday, January 18, 2018 at 8:32:07 AM UTC, andr3id wrote: > > Oh, I'b a bit behind... I've probably should have read your work before > posting :) > > If this works then the patch is probably not needed for having WMR89 show > up as /dev/ttyUSB0. > > sudo sh -c 'echo 0fde ca0a > /sys/bus/usb-serial/drivers/cp210x/new_id > > But maybe the hints are useful to map a standard baud rate, for example 50 > as mentioned in the wxforum, to 128000. > > On Thursday, January 18, 2018 at 9:17:43 AM UTC+1, andr3id wrote: >> >> >> >> On Wednesday, January 17, 2018 at 11:55:23 PM UTC+1, mwall wrote: >>> >>> On Wednesday, January 17, 2018 at 5:32:07 PM UTC-5, andr3id wrote: >>>> >>>> Anyway, with the information found on wxforum >>>> <https://www.wxforum.net/index.php?topic=27581.0>, I've managed to >>>> modify a linux kernel driver to make the WMR89 show up as a USB serial >>>> interface in Linux. >>>> >>> >>> welcome! could you post the instructions for what you did to modify the >>> kernel driver? based on conversations with marunio, i wrote a wmr89 driver >>> that *should* properly decode data. unfortunately, all of the hardware i >>> have at hand has serial drivers that refuse to permit the non-standard baud. >>> >> >> I will try to sum up what I've did in a future post. It was just a quick >> hack to make it work and not really a great solution. >> Here are some hints if you want to try: >> >> - You'll need all the tools to be able to build the kernel, the linux >> headers and the source code for the running kernel. >> >> - The driver that WMR89 uses is >> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/tree/drivers/usb/serial/cp210x.c?h=v4.14.14. >> >> That is just an example to find it in the path. >> >> - For simplicity, I've just made a copy and pretended that it was a new >> kernel module and I've used information online for how to build the driver >> and load it to the running kernel. >> This was the messy process and it's not fail proof for future kernel >> updates, but my focus was just to make it work. The goal was to have the >> weather station show up as /dev/ttyUSB0 for example. I'm not a kernel >> developer so I have to figure out how this process should be handled in a >> better way. There are instructions online on how to build an own kernel >> module but unfortunately not all of them are great. >> >> - The driver has to be patched by adding usb_device_id for WMR89, as >> stated in the wxforum. Basically add a line with { USB_DEVICE(<vendor id> >> , <product id>) }, to the device id table in the driver file. I was also >> mentioned that maybe the non standard baud rate 128000 that is used, should >> be mapped to some other standard value. I haven't done that since it wasn't >> needed for pyserial, but maybe it is needed for other serial communication >> libraries. >> >> - I had to load the usbserial module before loading the built module for >> WMR89. Use dmesg to look for error messages. >> >> >>> >>> my work thus far is here: >>> >>> https://github.com/matthewwall/weewx-wmr89 >>> >>> this should be an easy one to add to the weewx core. >>> >>> m >>> >>
