FlexBV is a boardview file & schematic viewer for your own files.
FlexBV's only restriction is the file type of the boardview that you want to use. Boardview files are available readily across the internet with a single googling query.
It is illegal to distribute other company's boardview & schematic files, as such FlexBV does not come with a complimentary bundle ( as much as it would be an excellent starter pack ).
FlexBV is akin to having AutoCAD, you can view CAD files but AutoCAD doesn't bundle Boeing or BMW designs
Take a look at https://badcaps.net , sign up, it's free ( no tokens, monthly fees or other bollocks! ), and it has excellent availability of most boardviews and schematics that you may want.
When you buy a licence of FlexBV, you are buying the right to own that version perpetually.
FlexBV will not expire
You can upgrade to a future major version for a reduced fee if you want to
You do not need internet connectivity to use FlexBV
You can migrate your licence to any supported OS
You may install FlexBV on multiple machines with the same licence as long as you are the only user of that licence ( ie, you cannot have two workstations being concurrently used by techs, that would require two licences ).
A boardview is a representation of the physical layout of a circuit board, as opposed to a schematic which is a representation of the logical design of a circuit. A boardview is a form of a CAD file.
A boardview is generally not a full design file; instead a boardview provides sufficient information to know where to locate a part on the board and what other parts it is connected to. A boardview often does not contain routing/trace or inner layer information.
At the very minimum, a boardview consists only of a list of pins/pads with the following information;
Board side | Position x,y | Part name | Pin Number | Network |
---|---|---|---|---|
Top/bottom | Position of the pin | The associated part that the pin belongs to (or testpad) | 1, A1, 3 etc | PPBUS_G3H, GND etc |
With only that simple amount of information a boardview can be constructed, often it's useful to have a board outline as well but it's not a necessity. Package outlines can be deduced/generated from the grouping of the pins with the same part.
Most of the Macbook brd files contain only this information (along with an outline), so when you look at the boardview, what you're seeing as parts/package-outlines has all been generated from a simple list of pins.
Beyond the fundamental data requirements for a boardview some formats additionally add pad and package outlines (such as Teboview and GenCAD) and additionally some contain part data (value, ratings, manufacturer ID).
For a very long time we only needed to rely on a schematic together with the physical board that we needed to repair, because the PCB was the boardview in real life; PCBs had the part names printed by the parts which enabled you to cross-reference with the schematic ( and sometimes the schematic would help locating parts using a coarse grid coordinate system ).
With modern surface mount boards and extremely high part densities it has become impractical to rely on the physical PCB as the real-life boardview; parts are too small and there's no space to print the part names; this is now where boardview files and software have become a necessity - without them there's no way to know where R7002 is on a board or to know what part it was that has burned out on the board that you need to replace, even if you have a schematic.
Bringing the boardview together with the schematic allows us to now know the name of parts at a given location, and know the location of parts in the schematic. FlexBV ties together the boardview and schematic so that you can cross reference between them with out having to manually copy-paste/search, saving a lot of time and frustration.
Having a boardview lets you see all the other parts on the board that are connected to the same network/rail.
Having a boardview lets you see what other parts are in the same region as a damaged area on the board.
For the optimal utilisation of FlexBV, it's recommended that you store boardview files in a one-per-folder configuration so that all associated files / data for the board are contained in a single location.
As an example; if you have a Macbook board 820-00165.brd file, store it in a location such as;
c:\boards\macbooks\820-00165
within this folder associated files will be contained without risk of conflict of other boards.
Name the schematic PDF the same as the boardfile and FlexBV will automatically load this with the BRD without requiring any additional intervention.
It's strongly recommended that you strip away any excess characters/naming of the boardview file so that the name of the file reflects the board file ID explicitly; ie, instead of J113 820-00165_vina.brd
rename it to be 820-00165.brd
, this will make the automatic searching of the board on Openboarddata simpler with more chances of success of finding a match ( see https://openboarddata.org for a list of currently supported boards )
After use, a board file folder will look similar to the following;
x820-00165-bottom.jpg
820-00165.brd
820-00165_brd.sqlite3
820-00165.obdata
820-00165.obdlocal
820-00165.obdlog
820-00165.obdq
820-00165.pdf
820-00165.sqlite3
820-00165-top.jpg
An organisation tree structure similar to below is strongly suggested;
xxxxxxxxxx
Boards
Apple
macbooks
820-00165
820-00840
820-02020
...
820-02292
iPhones
iPhone6
iPhone6S
...
iPhoneX
ASUS
laptops
desktops
Lenovo
Extension | Description |
---|---|
brd, tvw, fz, cad, bvr, pcb | Boardview actual CAD type file |
Schematic of boardview | |
sqlite3 | Configuration and metadata for the boardview file. Contains annotations. |
*-top.jpg, *-bottom.jpg | Top and bottom board images |
obdata | OpenBoardData file, usually downloaded via FlexBV from openboarddata.org, contains repair guides, component values and diode/volt measurements |
obdlocal | Local version of obdata file, this is loaded and overlaid after the main obdata file |
obdlog | A log of all the data submissions created |
obdq | Contains new obdata measurements pending to be sent to the server |
Initially loading FlexBV will result in a blank starting display
At the bottom left you should see your licenced details and the current version
Use File>Open
or select an existing board from the history list.
For the purpose of demonstration, we'll load the Macbook A1466 820-00165 logic board which is well documented and also has OBData support.
The "Olive" colour theme is selected
Default mouse right click behaviour is to search (ctrl-click for context menu)
The FlexBV boardview window is on the left, the schematic on the right.
You can manipulate the position of the board using;
Click-hold and drag with the mouse
Scroll wheel to adjust zoom
Middle click to flip between board sides
<
and >
keys to rotate the board
Board>Preferences
Selecting the schematic for the board file is normally automatic if you follow the file organisation layout recommendation. If FlexBV does not find a matching schematic automatically you can manually select one using the Select
button.
Type in the board code in the Search String :
field and press the Search Server
button. NOTE It's important that you use the minimum / cleanest board code. For a list of currently submitted boards check the OBData site at https://openboarddata.org
The server will respond with a list of possible matches for the search string. If there are no matches check manually at the OBData server site.
####
Select the board that matches your file and then click Download Data
If the data download is successful you should see the Net data lists populated and also perhaps the component data lists. You can also check on the info panel (right side bar) to see if there are any repair solutions added.
Moving the mouse pointer over a part will bring up a tooltip indicating the part name and possible information about the part
Moving the mouse over a pin of a part will bring up details about the pin in the part and any associated OBData information ( in this case the expected diode mode value of the net and the normal running voltage)
Clicking on a pin in a part will select the pin and all other parts connected to the same network. Lines will be drawn to all the other parts on the board sides allowing for quick and easy examination of where the network is present on the board
Depending on the configuration of 'Program Preferences>Mouse Keyboard Preferences' a context menu will be available either via right-clicking the mouse, or ctrl-right-clicking.
The context menu provides schematic search options for the net and/or part as well as an expansion of the OBData (if present) and part and/or pin(network) data.
Annotations can also be added
To locate the part on the schematic from the boardview, right-click the mouse while hovered over the blank inner body of the part
To locate the network on the schematic from the boardview, right-click on the mouse while hovered over the specific pin of the part
Right click on the part name in the schematic, it will momentarily turn inverted-background and the boardview will update to show the part as a selected item
Right click on the network name in the schematic, it will momentarily turn inverted-background around the name and the boardview will update to show the selected net
The MiniMap provides a world view of the currently loaded board, making it easier to track your current position on the board as well as giving the ability for fast navigation by jumping to the clicked location, panning, or zooming.
It may be a small feature but it's big in helping you navigate your way.
MiniMap has adjustable parameters located in Preferences and Colour Preferences
Menu entry | Purpose |
---|---|
Butterfly Mode | If enabled, show both sides of the board concurrently ( paid version only ) |
Mirror Board | For some boards the data is seemingly backwards; use this function to mirror the board |
Show Info Panel | If enabled, shows the right hand side information panel |
Net web | If enabled, clicking on a pad will draw lines to all other parts on the board on the same network (GND excluded) |
Layers | |
Annotations | If enabled, annotations will be shown on the board |
Outline | Board outline, single width line |
Board Images | If there are board images assigned ( see Board>Preferences ) they will be shown |
Pins | If enabled, draw pins |
OBData Coverage | If enabled, all pins/nets with OBData values will be highlighted ( mostly used for when capturing OBData to let you see the areas you still need to work on) |
Pin Net Names | If enabled, show the network names of the pins |
Hidden Parts | If enabled, ignore the hidden part attribute of a part and display |
Parts (generated) | For board files such as Testlink BRD there are no part outlines, instead the outlines are generated - display these |
Parts (from file) | With formats such as GenCAD and Teboview, parts often have defined outlines - display these |
Part Names | Display the name of the parts |
Part Value/Metadata | If available, part values and metadata will be shown (ie 1uF 16V), this data is sometimes integrated with a file, fz and Teboview commonly do |
Overlay | (not currently applicable) |
Board fill | Fill the board outline with a fixed flood colour ( see Settings>Color Preferences ) |
Part fill | Fill the part outline with a fixed flood colour ( parts can be assigned different colours based on their naming, see Settings>Colour Preferences) |
Part outline | Draw part outline from file |
Part hull | The part hull is the outline that forms the minimum area around all the pins |
Pin fill | Fill the pins with a fixed colour |
Silkscreen | (paid version) if the boardfile has a silkscreen layer enable it ( currently Teboview only ) |
One of those most common operations, is searching for a part name, or a network name
Bringing up the search dialog the number of search fields is set in Settings>Program Preferences>FlexBV Preferences>Search Columns
Start typing in the component (or net) name that you're searching for, and FlexBV will begin to build a list of possible matches
NOTE: Network searches from the search dialog or PDF search prioritise testpoints as the nucleation point for the netweb.
Clicking Search
will result in all current list items being added to the selected parts/nets list, or you can complete the search selection refined down to the specific part;
Control | Purpose |
---|---|
Search button (or Enter ) | commit the search process and load the matching parts to the selected list |
Reset button | clear all the current search fields |
Exit button (or esc) | Close the search window |
Components (checkbox) | Search the board components |
Nets (checkbox) | Search the board networks |
Search modes | |
Substring | Matches the field contents to any portion of a name |
Prefix | Left aligned match of a name |
Strict/Whole | Match only the complete name |
The part finder feature allows you to search through a collection of schematics looking for a specific part that you require which may be present on another board that you have on hand. This feature was originally created to reduce the number of Macbook boards required to keep on hand.
Search>Part Find
Field | Description | Default |
---|---|---|
PDF Collection Folder | The folder which is the root/main folder under which all your schematics are kept that you wish to search through | N/A |
Folder Search Depth | How many levels of recursion from the root/main folder the Part Find tool will dive | 3 |
Search String [A,B,C] | The text portion you're trying to locate | |
Search Mode: Left Align | Partial match but must be from the first character | |
Search Mode: Strict | Text must match precisely, including length | |
Search Mode: Substring | Text can be located anywhere within the a word (ie, 'foo' will match with 'somefoobar') | |
Detection Radius | If searching for multiple strings, the hits must all occur within the detection radius (pts) | 50 |
Pressing the search
button will begin the process of examining the available schematics
As matches are found the successfully matched schematics will be listed
The search can be stopped at any time by pressing the Stop Search
button
Clicking on any of the "HIT" schematics will result in a separate window opening with the schematic and the first search hit highlighted; if there is a matching boardview file this will additionally be opened in a separate window independent of your search instance.
NOTE: The part is not highlighted in the boardview because the search is for a component type/name and there's no way of correlating the respective board part number from this information, however with the component highlighted in the schematic you can right-click on the associated part name and it will be highlighted in the boardview.
More complex searches are useful for finding parts with multiple parameters needing to be matched
Searching for a 1uF 16V 0201 size capacitor; we break this down in to 1uF, 16V, and 201 (substring). The reason for the separation of the attributes is because they're frequently listed as separate blocks of text around the component, as opposed to a single line.
Sometimes you will have to adjust how you utilise the paramters and perhaps tighten down the detection radius to avoid false positives; it's a bit of an artform but it can save you a lot of time and a lot of money.
Settings>Program Preferences
Setting | Type | Description | Default |
---|---|---|---|
Boardview|Schematic Split | Percentage | Sets the desired horizontal display space split between the boardview and the schematic viewer when the BV|Schem split button is pressed on the menu bar | 60 |
Height% | Percentage | Sets the desired height percentage of the display to utilise. Due to the SDL2 engine and the varying OS window managers, it's not a guaranteed value; "best attempt" | 99 |
Window Size | Pixels | FlexBV boardview width x height in pixels when started | |
Origin | Pixels | Where on the display to place the top left corner of the FlexBV window | |
[Get current size and position] | Button | When clicked the current window size and position will be stored as the startup values (Window Size, Origin) | |
Font Size | Pixels (height) | Pixel (height) size of the baseline font size | 20 |
Side Panel font size offset | integer | index size difference from the [Font Size] to use for the sidebar text. FlexBV preloads a number of font sizes starting from 8px to provide the required text zoom in/out ranges. This offset size represents the index difference between the Font Size index and the one to be used for the side bar. Lower index = smaller font. | -1 |
Screen DPI | dpi | Standard baseline DPI is 96dpi, you can use this value to effectively scale all the text and spacing of the program (ie, 200dpi on 96dpi display will result in larger objects) | 96 |
Zoom step | Percentage change of the zoom level per click/step | 3 | |
Zoom modifer | Multiplier of Zoom step for when ctrl+click used | 5 | |
Panning step | coordinate change per step (using keyboard control) | 60 | |
Panning modifier | Multiplier of panning step when using shift | 5 | |
Flip Mode | When using the mouse middle-click to flip the board, this mode determines the flip origin. * mouse: flip around the current mouse pointer position *viewport: flip entire viewport | Mouse pointer | |
Part Search Zoom | 20 | ||
Net Search Zoom | 5 | ||
Search Columns | How many search fields are present with the search dialog. In the older days we used to utilise 2~4 columns but due to improvements of the boardview rendering and netwebs this has become less required and 1~2 is more functional | 2 | |
Center Search Results | checkbox | Shift the display to centralise the search results | enabled |
Zoom Search Results | checkbox | Adjust the zoom of the board to maximise the area used for showing the search results | disabled |
Show Info Panel | checkbox | If enabled, show the right hand side information panel | enabled |
*Show Net Web | checkbox | If enabled, draw lines from a given pad to all other pads that are on the same net. GND pads are ignored for this | enabled |
Web thickness | px | Pixel width of the lines used to draw the Net Web | 1 |
*Show FPS | checkbox | Show the current frames-per-second rate of FlexBV | disabled |
*Fill Pins | checkbox | If enabled, pins will be filled | enabled |
*Fill Parts | checkbox | If enabled, parts will be filled | enabled |
*Fill Board | checkbox | If enabled, board will be filled (if no outline present then the minimum-bounding-box will be filled) | enabled |
Setting | Type | Description | Default |
---|---|---|---|
Schematic viewer | fixed | path of the binary used for viewing the schematics ( this cannot be changed, it is only for reference ) | |
Window size | coordinates | Requested width and height of schematic viewer when launched | |
Origin | coordinates | Requested top-left corner of schematic viewer when launched | |
[Use current position and size] | button | When clicked the current position and size of the schematic viewer will be queried and stored as the default value | |
Scroll for Zoom | checkbox | If enabled, the scroll wheel / functionality will be used for zooming (otherwise it'll be used for page scrolling) | disabled |
Colour invert | checkbox | If enabled the schematic viewer will start with inverted colouring / high-contrast | disabled |
Raise/Focus FlexBV on search | checkbox | If enabled, when a net/part is clicked in the schematic viewer, a raise request will be issued to FlexBV. NOTE: This unfortunately rarely works now because of the increased level of lockdown from window management systems preventing internal window manipulation | disabled |
Highlight Mode | selection | If "filled", search hits will be solid filled | Filled |
Raise/Focus PDF on search | checkbox | If enabled, when a net/part is clicked to schematic-search in the boardviewer, a raise request will be issued to the schematic viewer. NOTE: This unfortunately rarely works now because of the increased level of lockdown from window management systems preventing internal window manipulation | disabled |
Use search heuristics | checkbox | If enabled the schematic viewer will try search trimmed variations of the net/part name. | enabled |
Debug mode | checkbox | If enabled, schematic viewer will generate a log file | disabled |
Path for PDF part searching collection | path | The Search>PartFind feature requires a root path of where to begin searching recursively through schematics to find parts |
Setting | Type | Description | Default |
---|---|---|---|
Right Click Behaviour | selection | Context Menu: Right clicking brings up the context menu Search Schematic: Right click searches the schematic for the currently hovered part or net | Search Schematic |
Right Click Modifier | selection | Select the suitable key binding to be associated with the alternative right click behaviour | Ctrl |
Setting | Type | Description | Default |
---|---|---|---|
Multimeter Data Folder | Path | FlexBV looks for the mmdata.txt file to acquire the data from the multimeter in this folder | |
Poll frames delay | integer | How many FlexBV frames rendered before checking for mmdata.txt again | 15 (~0.25 seconds) |
Averaging sampling size | integer | How many data samples to average ( sliding window ) for calculated value | 3 |
Font size multiplier | integer | Font size increase over the standard FlexBV font size for the multimeter value display | 4 |
OK Text | colour | Text colour used to indicate that the value from the multimeter is stable/ok | |
OK Background | colour | Background colour used with OK Text | |
Unstable Text | colour | Text colour used to indicate that the value from the multimeter is not yet stable | |
Unstable Background | colour | Background colour used with Unstable Text | |
Submission Flash Count | integer | How many times the multimeter text will alternate between OK and flash colour. Submission flashing is used so that you can determine from your peripheral vision if the OBData submission has been successfully accepted | 3 |
Submission Flash (colour) | colour | Background colour to use for the flashing | |
[Test Flashing] | Use this button to test how the flashing will appear ( flash count + colour ) |
Setting | Type | Description | Default |
---|---|---|---|
Display data if NoStuff | checkbox | If enabled, part data will still be displayed when hovered even though the part will not be visually present | disabled |
Display part value/code | checkbox | If enabled, part data will be displayed | enabled |
Font size offset for part data | pt | pt size count change from main font | -4 |
Setting | Type | Description | Default |
---|---|---|---|
Display on NC pins | checkbox | Display network name on NC pins (usually no reason to) | disabled |
Display diode value | checkbox | Display OBData diode value for net on pin | enabled |
Display voltage value | checkbox | Display OBData voltage value for net on pin | enabled |
Display resistance value | checkbox | Display OBData resistance value for net on pin | enabled |
Show pin name/number at radius | integer/px | Minimum pixel pin diameter/size before showing pin name/number ( A1 / 1 etc ) | 9 |
Show pin OBData at radius | integer/px | Minimum pixel pin diameter/size before showing OBData text | 15 |
Show pin Net name at radius | integer/px | Minimum pixel pin diameter/size before showing Network name | 30 |
Font size offset for OBData | integer/pt | Font size difference relative to main font for OBData text | 1 |
Font size offset for Net name | integer/pt | Font size difference relative to main font for Network name | -2 |
Pin Name/Number colour | colour | Text colour for pin name/number | |
Background | colour | Background colour for pin name/number | |
Show OBData only if selected | checkbox | If enabled, OBData is only shown if pin/net is selected | disabled |
OBData text colour | colour | Text colour for OBData | |
(OBData text) Background | colour | Background colour for OBData text | |
Show Network name only if selected | checkbox | If enabled, Network name is only shown if pin/net selected | disabled |
Network name text colour | colour | Text colour for network name | |
(Network name) Background | colour | Background colour for network name text | |
Background padding | px | padding distance around text for background | 4 |
Background corner radius | px | corner radius for background | 3 |
Do not change these values unless you have a very specific reason to do so
Setting | Type | Description | Default |
---|---|---|---|
Server | URL | Openboarddata server | openboarddata.org |
Path | URL | Specific page on OBData server to use | obd.php |
Port | integer | Server port | 443 |
Check server if no local file | checkbox | If there's no local .obdata file, check the server to see if there's a matching boardfile obdata | enabled |
Check server when board is loaded | checkbox | Check the OBData server for new data each time the board is loaded | enabled |
Setting | Type | Description | Default |
---|---|---|---|
Folder/Path for jobs | path | Location of where the jobs database will be created/found | ( created on installation) |
Default Tech Name | text | Name of the technician who will be creating the jobs ( for autofill ) | |
Default Tech Email | text | Email address of the technician ( for autofill ) |
Setting | Type | Description | Default |
---|---|---|---|
Display Grid | checkbox | If enabled, creates a 1"/0.1" Major/minor dot grid over the boardview | enabled |
Display Origin | checkbox | If enabled, displays an origin marker for the board | enabled |
Display Board Side | checkbox | If enabled, displays a top/bottom, primary/secondary label for the boardview. The primary/secondary refers to the butterfly status | enabled |
Display Ghost Cursor (5.0386+) | checkbox | If enabled, a ring cursor will be displayed on the opposing side of the board indicating the same board position as the main cursor Colour, diameter, thickness, fill set in theme colour preferences. | enabled |
Display Zoom Ring (5.0386+) | checkbox | If enabled, when a part is selected via PDF or infopane search a collapsing ring will be displayed to assist in visually locating the item ( useful for areas with dense part packing or if zoomed out ). Colour is the same as the Pin Halo | enabled |
Setting | Type | Description | Default |
---|---|---|---|
Display MiniMap | checkbox | If enabled, display a minimap on the boardview window, or floating window | enabled (v5.0418+) |
Width | number slider | Set the width of the minimap in pixels. The height of the minimap will be calculated based on the board size and orienation | 300(px) |
Position | radio checkbox | Selects the preferred position of the minimap on the boardview canvas area. Selecting "Floating" will allow you to move the minimap to anywhere in the FlexBV5 application but it will not change position even if you resize the application | |
See Colour Preferences for more options for the MiniMap feature |
Setting | Type | Description | Default |
---|---|---|---|
OBData | checkbox | If enabled, OBData parsing will be logged to the FlexBV logfile | disabled |
ImGui | checkbox | If enabled, the ImGui debugging console dialog will be enabled | disabled |
FlexBV supports theme files. The location of the files can be found by inspecting Help>About>Theme Path. By default four (4) themes are generated initially
Light
Dark
Olive
RobBrown
To create your own theme you can copy one of the existing files (*.fbvtheme) to a new name in the theme folder and FlexBV will automatically detect its availability
NOTE: Adjusting the colours of the theme modify the theme file immediately
FlexBV currently supports exporting any loaded boardview file in to the following formats
File->Export SVG
While not used as an actual boardviewing format, exporting to SVG is useful for other purposes perhaps such as CAM/CAD work and presentations or task/job specific diagram work.
The exported SVG is grouped as follows;
Top
Outline
Parts
Pins (with network names)
Bottom
Outline
Parts
Pins (with network names)
File->Export BVR3
Default .bvr extension
Created by FlexBV, it's intentionally a very verbose, non-referencing, and highly compressible text format.
Supported by OpenBoardview as well as FlexBV. Other programs can easily support BVR3 due to the plain text style.
Not intended as a design file format.
Supports part and pad outlines
Format | Extension(s) | Description | Outlines | Pad/Part shapes | Component/Net data |
---|---|---|---|---|---|
Testlink BRD (Landrex) | brd | Defacto Macbook boardview file format. Only provides board outline (usually) and pin:part:network associations. * No pad or part outlines * No network/part data | yes | no | no |
Teboview | tvw | Lenovo laptops and graphics cards commonly use this format | yes | yes | yes |
GenCAD | cad | Becoming a more popular export format from EDA suites. Plain text and documented which makes it favourable as a portable format | yes | yes | no |
AsusFZ | fz | Encoded format used for a lot of ASUS boards. | yes | no | yes |
ASCFile | |||||
CST | |||||
FAB | |||||
Hyperion | |||||
OBD | |||||
ADFile | |||||
BDV | |||||
CADFile |
...to be filled.
FlexBV provides an internal logging service and you can submit your log files for analysis if you are having issues
Use Help>View Log
To inspect the current (live) log file. The log file is overwritten with each new session of FlexBV.
Click the [Submit Log] button to upload the log for analysis. Support will receive notification that the log file has been uploaded. It is recommended that you also send an email to pldaniels@gmail.com with details about your situation/fault.