Skip to content

Releases: 0xCAFEDECAF/VanBus

V0.4.0

26 Mar 10:42
3b820a9
Compare
Choose a tag to compare

General:

  • Add support for ESP32 platform/architecture
  • Added shell (.sh) and batch (.bat) scripts that help to set up the Arduino IDE with all the correct board options

README.md:

  • Fix broken links

src/VanBusRx.h:

  • Move method TVanPacketRxQueue::GetLastMediaAccessAt from private to public

V0.3.4

13 Oct 12:20
fe49051
Compare
Choose a tag to compare

General:

  • Fix compiler warnings

README.md:

  • Add note on clamping circuit
  • Add note about the removal of the terminator resistors on the transceivers
  • Document new method TVanBus::SetDropPolicy
  • Fix links

src/VanBus.h:

  • Add method TVanBus::SetDropPolicy

src/VanBusRx.cpp:

  • Fix compilation error
  • Small updates in the bit timing criteria

extras/Schematics:

  • Add clamping circuit: seems to reduce amount of bit errors

examples/SendPacket:

  • Add possibility to send also negative temperature values

examples/PacketParser:

  • IDEN 0x8CE (SATNAV_STATUS_3_IDEN): add sat nav language codes

examples/DisplayNotifications:

  • Add possibility to send also negative temperature values

V0.3.3

15 May 10:10
25d1397
Compare
Choose a tag to compare

General:

  • Moved code to src/ subdir to adhere to '1.5 library format (rev. 2.2)'
  • Updated README.md
  • All lines end consistently with "\n" (no more lines ending with "\r\n")
  • Fix compiler warnings

src/VanBusRx.cpp:

  • Implement simple packet drop policy for queue filling up
  • Experiment: use time average of measured one-bit CPU cycles to adjust timing of bits
  • If (nBits == 0): reset jitter if last bit was actually flipped
  • If there are still 9 last read bits at end of packet, store those bits and keep the read result VAN_RX_PACKET_OK
  • Small updates in the bit timing criteria

src/VanBusRx.h:

  • Move methods getIfsDebugPacket and getIsrDebugPacket down, to match as listed in README.md
  • Moved method _AdvanceHead from .h file to .cpp file

extras/schematics:

  • Added labels

examples/LiveWebPage:

  • Rename IDEN 0xB0E from ECU_IDEN to SATNAV_GPS_INFO

examples/PacketParser:

  • Rename IDEN 0xB0E from ECU_IDEN to SATNAV_GPS_INFO

V0.3.2

09 Jan 10:34
625050e
Compare
Choose a tag to compare

General:

  • Updated README.md

VanBusRx.cpp:

  • Decrease CPU load by using table-based CRC calculation
  • struct TIsrDebugData, struct TIfsDebugData: renamed nCycles to nCyclesMeasured
  • Added new method TVanPacketRxQueue::IsEnabled()
  • RxPinChangeIsr(): save a few precious bytes of RAM
  • Prevent CPU monopolization by noise on bus
  • TVanPacketRxQueue::Disable(): also run timer1_disable(), just in case
  • Improved keeping the nQueued counter up to date
  • Add extra patterns for SOF detection
  • Small updates in the bit timing criteria

V0.3.1

21 Oct 14:07
c1f2433
Compare
Choose a tag to compare

General:

  • Updated README.md

VanBus.h:

  • TVanBus::DumpStats(...): pass also optional parameter longForm
  • class TVanBus: add member functions QueueSize(), GetNQueued() and GetMaxQueued()

VanBusRx.cpp:

  • TVanPacketRxDesc::CheckCrcAndRepair(...): try to fix packet by flipping three equal bits in a row
  • TVanPacketRxDesc::CheckCrcAndRepair(...): multiple fixes in the "Flip two bits" part
  • TVanPacketRxDesc::CheckCrcAndRepair(...): check first with only the "uncertain bit" flipped
  • Better handling of unexpected new bit coming after an "ACK" (in which case it is not an "ACK" but the first "1" bit of the next byte)
  • Add extra patterns for SOF detection
  • Small updates in the bit timing criteria

VanBusRx.h:

  • Added new method TVanPacketRxQueue::GetNQueued(), returning current number of packets waiting in Rx queue
  • class TVanPacketRxQueue: nQueued and maxQueued must be declared volatile
  • Remove unnecessary debugging data/code (isrData->nIsrs)

V0.3.0

01 Sep 15:32
3678019
Compare
Choose a tag to compare

General:

  • Added new header file 'VanBusVersion.h'
  • Consistently use Unix-style LF line endings

VanBusRx:

  • More flexible SOF detection and smarter handling of jitter and missed interrupts, leading to less CRC error packets
  • New method GetMaxQueued() returning the highest fill level of the RX queue since boot time
  • Improved ISR debugging (as enabled with #define VAN_RX_ISR_DEBUGGING): better functionality and reduced RAM usage
  • TVanPacketRxDesc::IsQueueOverrun(): reads and clears overrun bit within same invocation
  • TVanPacketRxDesc::CheckCrcAndRepair(...):
    • Added optional parameter 'wantToCount', a pointer-to-method of class TVanPacketRxDesc, returning a boolean. It can be used to limit the repair statistics to take only specific types of packets into account.
    • Process a new member field, 'uncertainBit1', which the RX pin ISR can set when it is not certain about a bit value.
    • Re-introduced repair by flipping of two (non-consecutive) bits (but only the last bit in a sequence of same bit values is flipped).
  • TVanPacketRxDesc::DumpRaw(...):
    • Print the command flags also as HEX value
    • Also print the ASCII character representation of each byte, if possible
  • TVanPacketRxQueue::DumpStats: print also the highest fill level of the RX queue
  • Use compiler directive 'inline __attribute__((always_inline))' for routines that are called by the RX pin ISR.
  • nBitsTakingIntoAccountJitter(...): updates in the bit timing criteria

examples/LiveWebPage:

  • Renamed TIME_IDEN (IDEN 984) to MFD_LANGUAGE_UNITS_IDEN and updated the parsing and displaying of these packets
  • Improved repeat-handling (held-down button) of IR remote control
  • Updated JSON data (PacketToJson.ino) to be in line with VanLiveConnect
  • Print also ESP MAC address and CPU factor on startup, pass ESP reset reason and reset info via JSON data

examples/PacketParser:

  • Renamed TIME_IDEN (IDEN 984) to MFD_LANGUAGE_UNITS_IDEN and updated the parsing of these packets
  • SATNAV_STATUS_2_IDEN (IDEN 7CE) packets: added parsing of newly found field "guidance_language"
  • SATNAV_GUIDANCE_IDEN (IDEN 64E) packets: added handling of 16-byte packets with two detailed instructions ("take left/right fork/exit, then ...")
  • enum VanPacketFilter_t: added item VAN_PACKETS_SAT_NAV_PKTS

V0.2.5

27 Jan 10:02
db46be7
Compare
Choose a tag to compare

General:

  • Updated README.md
  • Code formatting

VanBusRx:

  • Added inter-frame space (IFS) debugging to be able to see why packets are sometimes missed
  • Improved start of frame (SOF) detection to decrease the number of missed packets

examples/LiveWebPage.ino:

  • Improved handling (timing) of IR remote control
  • Update JSON data (PacketToJson.ino) to be in line with VanLiveConnect
  • Various fixes in the HTML page (LiveWebPage.ino)
  • Websocket: send instead of broadcast

V0.2.4

31 Dec 10:30
a457ccb
Compare
Choose a tag to compare

VanBusRx:

  • Added optional 'longForm' parameter to TVanPacketRxQueue::DumpStats method
  • Added #define VAN_BUX_RX_VERSION 000002004
  • Added new method TVanPacketRxDesc::Millis returning packet time stamp in milliseconds

examples/DisplayNotifications.ino:

  • Re-trigger the shown notification every 7 seconds, so that it is displayed permanently

examples/PacketParser.ino

  • Updated comment about sat nav street format

V0.2.3

20 Oct 09:22
36b3fde
Compare
Choose a tag to compare

General:

  • Compiles also for ESP32 architecture (but not tested!)

LiveWebPage.ino:

  • Improved compile-time options in Config.h
  • Detecting and handling of button delay and repeat when held-down on IR remote control
  • Various optimizations and improvements in packet parsing and handling (PacketToJson.ino)

V0.2.2

19 Aug 14:59
21ec234
Compare
Choose a tag to compare

VanBusRx.cpp:

  • Added methods TVanPacketRxQueue::Disable() and TVanPacketRxQueue::Enable(), to be used when other
    timing-critical / interrupt-driven tasks need to be done, like e.g. writing to SPIFFS (SPI Flash File System).
  • Method TVanPacketRxQueue::Setup() returns false if already setup
  • Experimental: accept a few "slightly-off" SOF bytes (normally always 0x0E)

VanBusRx.h:

  • Added method TVanPacketRxQueue::IsSetup(), to check if the Setup() method was called

DisplayNotifications.ino:

  • Offer interactivity via menu on Serial

LiveWebPage.ino:

  • Various bugfixes and updates on parsing sat nav data structures
  • Small update in parsing FM tuner data
  • Updates in parsing and presentation of sat nav status and guidance data
  • "cd_changer_current_disc": set to "---" if no discs present
  • Show also ESP (hardware/board) data
  • Added packet category VAN_PACKETS_COM2000_ETC for filtering serial output
  • Various updates and bugfixes

PacketParser.ino

  • Various updates and bugfixes