Thank you to the guys at HEGE supporting Badcaps [ HEGE ] [ HEGE DEX Chart ]

Announcement

Collapse
No announcement yet.

WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

    Just bumping this - it's terrifyingly been 2years and I still haven't had time to finish this format, so much so that I don't even recognise my own posts / documents from the past.

    Anyone else out there had more success?

    ImHex in the last two years has become a brilliant product btw, if you do any sort of file reverse engineering then you really do want to try it ( and it's open source too ).
    YouTube Repair Videos - https://www.youtube.com/user/19PLD73
    FlexBV BoardView software - Linux/OSX/Windows - http://pldaniels.com/flexbv

    Comment


      I just remembered this lol. Wanting to get my fan controls working with LibreHardwareMonitor I ended up having to dive into the TVW format a bit. (Although in the end I used TeboView to figure out the stuff I needed, I noticed that OpenBoardview support was a thing you were trying to accomplish, so I took a shot).

      I did put in a bit of work a while ago, then had to take care of other things and did not get back to it. Nevertheless I think I got most of it sorted out as far as data relevant to OpenBoardview would be concerned. The obvious challenge is to know all the record sizes because it's a strictly sequential format, somewhat like a "binary Gerber" with lots of extra info of course. I wrote a little parser that can read pads, parts and nets but right now it needs some tweaking per TVW file because of a wrong assumption I made about layer indexes. (Layer references in the pad descriptions are based on the order of the layer descriptors at the beginning of the file but I had assumed they were just constants)
      I found there were two types of layer descriptors, some going 00-03-02-01, others just being 01-02-01 (records are shorter - maybe simpler?) and was going to implement proper parsing but didn't get around to doing it so far.
      So I got all the part-pad-net association figured out but lacking some parts on the layers. I'm going to put the code on Github as-is later, maybe it helps figure out some of the missing pieces.

      As of now the offsets for parts, nets, top and bottom layer pad lists need to be specified manually since the parsing of lots of secondary stuff is missing:

      - file header
      - layer headers (pads are fine)
      - probedb
      - aperture lists (structs are partially there but polys are missing).

      When run it will list all the parts with associated pins and net names.

      Comment


        I knew I forgot to update something recently... needless to say, I've gotten through the bulk of the format now and it's running.

        Click image for larger version

Name:	Screenshot at 2023-11-26 15-41-20.png
Views:	319
Size:	621.1 KB
ID:	3155565
        YouTube Repair Videos - https://www.youtube.com/user/19PLD73
        FlexBV BoardView software - Linux/OSX/Windows - http://pldaniels.com/flexbv

        Comment


          Ohhh, sweet! So it's definitely redundant now but here's my current state: https://github.com/mrehkopf/tvwread

          Comment


            ikari_01 not redundant since you publish source code and it's MIT licensed, thanks for that.
            For OpenBoardView, parsing pad coordinates and associated part name and net name would already be a very good start.
            OpenBoardView — https://github.com/OpenBoardView/OpenBoardView

            Comment

            Working...
            X