This time, I pulled some console output from OctoPrint that includes the moment of the incident. I was able to reconnect OctoPrint to the printer just by selecting Reconnect, and that's apparent from the console as well. I don't know if this any more informative than a generic checksum error, but I'm hoping somebody has some idea of a diagnosis. Framing in serial communications August 12, 2009 at 05:16 Tags Articles, EE. In the previous post we've seen how to send and receive data on the serial port with Python and plot it live using a. A data byte or a checksum byte) will cause the receiver to lose just one frame, after which it will resynchronize onto the start flag byte of the.
I am working on a GPS project and I turned to TinyGPS for parsing the NMEA data. I have been able to get the most basic example sketch to work fine ('simpletest'), and it was reporting no checksum errors up until I tried to add code to extract the time from the NMEA sentences. The 'CSUM' error counter suddenly starting going up even when data wasn't being received. The counter will go up by one and sometimes two for ever 1-10ish chunks of data it parses.
While this concerns me, the time data is shown accurately and without fault. Even if these errors have no consequence, it will make it harder to detect when errors of consequence actually do happen. Here is the full code. Can somebody please help me? @Docedison The Arduiniana page says: 'If the $GPRMC sentence reports a validity of 'V' (void) instead of 'A' (active), or if the $GPGGA sentence reports fix type '0? (no fix) then those sentences are discarded.' I'm not sure if this is what the error counter is keeping track of, but even if the invalid data is being discarded, I still think it is a problem if I cannot find other invalid data.
@PaulS Hello from another Seattleite! The GPS updates every second, whether it has data or not. I'll try fiddling around with that loop later in the day, thanks! I think I found a fix. I do not know much about what the checksum is counting in this particular code, but after experimenting around a bit I found that it was not the time data itself that was triggering the error, but rather how many things I attempted to parse and print to serial. When I commented out the 'CRS' data only, the checksum error counter stayed at zero.
When I commented out the time data only, the checksum error counter stayed at zero as well (sometimes it began at 1 and stayed at 1). When I tried printing both course and time to serial, the counter rose up.
I can work with not having the course data if need be, but does anyone know why the csum errors start counting when I add too much stuff to the if(newData) statement?
.and now for something completely off-topic. I realize this may not be the best place to ask for help regarding an actual MT-32, given that this forum is about Munt/MT-32 emulation, but on the other hand it seems likely that a greater number of people here will own actual MT-32s or similar modules than elsewhere. I own three sound modules - an MT-32, an SC-88, and an SC-88ST Pro. My laptop has no MIDI port obviously, so I've had to connect the SC-88 to my laptop via a USB-to-Serial Port converter and the SC-88's 'Computer'/serial port. I then chained the MT-32 to the SC-88's MIDI Out/Thru in Out mode according to all of the SC manuals I've read, they don't pass on 'Computer port' MIDI data unless in Out mode - Thru mode only passes data from MIDI In A, and chained the SC-88ST Pro to the MT-32's MIDI Thru. My problem is this: although I've set up the serial port to work at 9600 baud without flow control slow enough not to cause buffer overflows when SysEx data is sent to the MT-32, and I've set up the SC-88 Serial Port drivers to use RTS/CTS Flow Control, I still receive errors when using the MT-32 under DOSBox or VDMSound or in Winamp playing an MT-32 MIDI file, etc. Strangely enough, I get no errors when using it under ScummVM in Native MT-32 mode.
The error I receive is 'Exc. Checksum error'. This happens whenever SysEx data is sent to the MT-32 - especially when games first initialize.
In LucasArts games that utilize SysEx instruments like Monkey Island 2, it doesn't seem to be a problem. The MT-32 outputs the error but then all the instruments load properly and I notice no errors. In games like Silpheed or other Sierra games, however, only a number of SysEx instruments load properly and the rest remain the defaults, which is a problem. As I said before, the error never occurs under ScummVM and all instruments load properly. I don't know if this is because ScummVM sends data at a much slower rate than the other programs, or what. At any rate, does anyone know what's causing this? Is it because I'm passing data to the MT-32 via the SC-88 which is using the 'Computer port'?
Is there any way around this that anyone knows of? Will I have to buy a USB-to-MIDI adapter instead and chain everything else through the MT-32 like I did on my desktop? Any help would be greatly appreciated! Newbie Posts: 25 Joined: 2004-7-11 @ 23:14. Kaminari wrote:The SysEx is being transmitted too fast. Just to let you know, this isn't the case. I've set the baud rate incredibly low as I mentioned before, and I've tried using MoSlo now to decrease the speed to almost unplayable levels, and I still receive the error.
When it's too fast, I generally get 'Exc. Buffer Overflow' errors, so the two aren't related in this case. I'm assuming the SC-88 MIDI Out must just be improperly passing on the data it receives from the COM port. Oh well, off to buy a USB-to-MIDI cable then, I suppose! Newbie Posts: 25 Joined: 2004-7-11 @ 23:14.
Comments are closed.
|
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |