Skip to content

2026-10-27: F-150 section rebuilt from the project files

Date: 2026-10-27 (work ran from 23:56 on 26 Oct to 00:21 on 27 Oct, UTC; US Eastern is UTC minus 4 hours)
Project: F-150 Emergency Lighting and 12V Upfit
Pull requests: #27, #28

Legal notice

Emergency lighting and siren use is regulated by state law and permits. This entry documents a personal build and is not legal guidance.

Before: The F-150 overview page in dark mode with the sidebar open. Before the rebuild the F-150 group lists 8 pages; after, it lists 21.After: The F-150 overview page in dark mode with the sidebar open. Before the rebuild the F-150 group lists 8 pages; after, it lists 21.
Drag to compare. Left: the F-150 overview just before PR #28, with 8 pages in the sidebar. Right: today, with 21. Both from local production builds of this site.

This entry is the full record of the night the F-150 section was rebuilt from my own project files. It covers the source material, the header photo swap that came first, every one of the thirteen new pages, the grille guard page that turned out to describe a superseded plan, the 22 images added, what was left off for privacy, both pull requests, and the problems and inconsistencies that writing this entry turned up. Every number comes from the files, the pull requests or the git history. Anything unconfirmed is marked.

At a glance (as of 2026-10-27)

Source document
My F-150 project document, 98 pages, with revisions 1 to 10 (latest 22 to 23 Oct)
Source bundle
My complete F-150 file bundle (23 Oct), a zip of 100 files, about 108 MB
F-150 section
8 pages before, 21 after (overview plus 20 component and reference pages)
New pages
13
Rewritten pages
2 (overview, grille guard)
Images added
22 in PR #28 and 1 in PR #27, metadata stripped; F-150 image folder now 45 files
Site size
39 pages before, 53 after (local builds)
Diff (PR #28)
43 files, 2,417 lines added, 64 removed, 1 commit
Wire schedule
75 rows, P1 to X2
Pull requests
#27 (merged 00:04:56) and #28 (merged 00:21:23)
Build check
Cloudflare Pages preview on PR #28 (passed)
New tests of the truck
None. This was documentation only

Source: GitHub PRs #27 and #28, git history, and the project document and bundle in my project files

  1. Summary
  2. The source material
  3. Timeline
  4. Every pull request
  5. The header photo swap
  6. The thirteen new pages
  7. The grille guard correction
  8. The overview rebuild
  9. Other pages touched
  10. Every image added
  11. Rules applied on every page
  12. Privacy pass and what was left off
  13. Problems hit and how they were solved
  14. Findings from writing this entry
  15. Testing and verification
  16. What I learned
  17. Open items
  18. Next step

I went through my full F-150 project document and the complete file bundle from 23 October and put everything in it on the site. Thirteen new pages:

# Page Status What it covers
1 Power, grounds and wire schedule Planned Every wire end to end (75 rows, P1 to X2), main power on 2 x 8 AWG fused 40A at the battery, the two wiring rules, the fuse table, the load budget and the under-seat amplifier mount
2 Install order and test plan In progress Phases 0 to 4, the bench power supply kit, and bench wiring for the U-Lites, Color Flood bar, CanTrol and 295HFSA6 test unit
3 Install parts and shopping list In progress Everything bought and still to buy in buying order, install quantities, wire lengths and tools. Running totals left out
4 Siren speakers In progress Two UBL 100W speakers on their own 1/4”-28 center bolts, parallel for a 5.5 Ω load
5 UBL U-Lite grille lights Bench-tested Two amber/white lights in the upper punch plate corners on J1-4 through a 3A fuse, synced and alternating
6 Visor light bar Installed SpeedTech Raptor split bar installed 18 Oct, on a 12V plug today, moving to J1-2 through its Grand Control Box
7 Rear traffic advisor Installed BooYu 8-head amber bar on J1-3 that needs its button pressed at every power-up, and the Whelen Dominator option
8 Rocker panel lights Planned Two UBL 60” amber/white bars on a 30A relay with its coil on LED Output 3
9 Putco Work Blade (tailgate) In progress 60” amber/white bar on J1-5 with the Putco remote (A for white override, B for patterns)
10 Rear plate Z-6 and brake pop In progress Plate bracket, two Z-6 heads, steady red braking over OBD-II with the CC5K1 kit, and a front Super Takedown option
11 Factory lamps (EFM 3.0) Installed Speed Turtle EFM 3.0 inline at BCM J3 and J7 since 8 Oct (firmware v3.36), F150LEDs CREE bulbs
12 CF-33 laptop mount Planned The programming laptop and the planned passenger-seat mount with hardwired power
13 Decisions, revisions and sources In progress Where sources disagreed, everything superseded, the ten document revisions and every source

I also rewrote the grille guard page to the final mounts, gave the overview a vehicle baseline, workstreams, full open items and troubleshooting, added 22 photos and reference charts, and renumbered the sidebar.

The grille guard page still described the 5 October proposal: L-brackets and backing plates for the speakers, band clamps and corner braces for the light bar, and a 1-3/4 in tube. All of that was replaced on 7 October by the speakers’ own center bolts, the light bar’s own L-brackets on steel ties, and a measured 1.91 in tube. Rebuilding from the source caught it. The same pass carried the frame-rail ground rule onto every new wiring table.

Source Detail
F-150 project document (PDF) 98 pages. Its revision history runs from revision 1 (6 Oct) to revision 10 (22 to 23 Oct), plus an appendix issued at revision 7
Complete file bundle (zip) F150_Upfit_Complete_Files_23Oct_1837, 100 files, about 108 MB: manufacturer manuals, my config sheet, the control head design brief and tech sheets, the siren mounting spreadsheet, the CanTrol photos, the Gen 3 bench test guide and photos
My later instructions 6 Oct (U-Lites in the upper punch plate, light bar under the lower tube) and 7 Oct (light bar on its own L-brackets with stainless ties). These win over earlier documents
Ford SVE Bulletin Q-231 and Ford body builder guidance The ground rule, via my 21 Oct wiring research
UBL and SpeedTech support UBL, 7 Oct: speaker bolt 1/4”-28 about 1-1/2 in, U-Lite holes take #6-32. SpeedTech, 8 Oct: the plate bracket is 12.5 x 5.75 in

The decisions, revisions and sources page lists all of it, including every manufacturer manual by form number.

Rev. Date Changes
1 6 Oct First compilation from five imported chats and the project threads
2 6 Oct My five documents and Tech Sheet 2 adopted as primary sources. U-Lites in the upper punch plate, Color Flood under the lower tube
3 6 Oct Actual spend list added, including the Optima battery
4 6 Oct Answers to the open questions. Speaker mount decided (no L-bracket), lower tube measured from photos, Color Flood wiring plan
5 6 Oct Guard part number confirmed. Final mounting hardware list. Installation labor added. Every image collected. Product names standardized
6 8 Oct UBL support sizes and Color Flood wire colors. Amplifier under the rear seat. One master shopping list. Reference sections moved to an appendix
7 11 Oct Appendix issued at revision 7. The main document’s history skips from 6 to 8
8 16 Oct CanTrol WC set with the 21-button head. Install tools group. Putco Work Blade with the remote. Plate bracket and Z-6 heads (18 Oct) and the CC5K1 kit (21 Oct)
9 21 Oct Five modes plan proposed. No grounds on battery negative; J17-1, -2 and -5 left unconnected; ham radio rule. Ham radio installed. Control head on the Ben3DBuild mount
10 22 to 23 Oct Guard confirmed as the Steelcraft HD 50-1420C. ZOOSUNX tie tool bought. Touch-up supplies bought and the touch-up finished 23 Oct
Time (UTC) What happened
26 Oct, 23:56 I asked for the overview’s header photo, the numbered grille guard mock-up, to be replaced with my “F-150 UBL Front Grille Guard Setup” image.
23:57 The new image committed as a progressive JPEG with no metadata.
23:58 PR #27 opened.
23:58 I asked for the whole F-150 section to be rebuilt from the 23 Oct project PDF and zip, exhaustively, with the privacy exclusions kept.
27 Oct, 00:02 The project PDF and every file in the zip read.
00:03 I asked for the old labeled picture on the grille guard page to be replaced too, header and layout image both.
00:04 The grille guard image swap pushed to PR #27, with a new caption.
00:04:56 I merged PR #27.
00:09 22 images pulled from the files with metadata stripped. Grille guard page rewritten to the final 7 Oct mounts, the touch-up and the wire storage plan. Siren speaker and U-Lite pages done.
00:14 Nine new pages done: speakers, U-Lites, visor bar, rear traffic advisor, rockers, Putco, rear plate Z-6, factory lamps and the wire schedule.
00:19:26 All 43 files committed.
00:19:41 PR #28 opened, assigned and sent for my review.
00:20 Cloudflare preview build passed.
00:21:23 I merged PR #28. The section went live.
00:24 I asked for this entry and three others to be expanded into full build records.
PR Opened Merged What it changed
#27 23:58 00:04:56 Replaced the overview header with the front setup image (src/assets/f150/grille-guard-front-setup.jpg, 1536 x 1024, re-saved from PNG as a progressive JPEG with no metadata, 391 KB) and new alt text naming the guard, U-Lites, speakers and Color Flood bar. Then used the same image for the grille guard page header and its “Front package layout” figure, replacing a caption that called the speakers and lights renderings. 2 commits, 3 files.
#28 00:19:41 00:21:23 Thirteen new pages, the grille guard rewrite, the overview expansion, the Color Flood page update, sidebar renumbering, 22 images and the first version of this entry. 1 commit, 43 files, 2,417 lines added and 64 removed.

The old header was the numbered proposal mock-up with callouts 1 (speakers), 2 (light bar) and 3 (grille lights). The new photo shows the real truck with the package lit. It has no numbers, so the alt text names each part instead. The plate visible in it is the “Arrive Alive” specialty design with no plate number showing. The old mock-up file stayed in the repository for the grille guard page, until PR #27’s second commit replaced it there too.

  • The two wiring rules (21 Oct): no ground ever on the battery negative post (the 2015+ F-150’s charge sensor is on that cable, per Ford SVE Bulletin Q-231), and no grounds on the aluminum cab, bed, fenders, tailgate or radiator support. Amateur radio gets its own battery feed and ground, never shared with the CanTrol.
  • Main power: two red leads on the 4-position Molex plug, each fused 40A within 2 ft of the battery, on 8 AWG. Each red carries half of 80A, sized at 125% to 50A. At 50A the Whelen chart allows 8 AWG to 15.5 ft, and the runs are about 12 ft. Two black leads of the same gauge go to the Q-231 point or a frame rail. The module case is grounded too.
  • Ignition sense: J17-7 through a fuse tap. The page records that Ford’s body builder guidance advises against fuse panel taps, and that the choice on record is to keep the tap on a slot picked by meter.
  • Fuse blocks: two Nilight 6-way ATC/ATO blocks near the battery, one for the CanTrol group and one for accessories, the accessory block fed by 10 AWG.
  • Wire schedule: 75 rows grouped by device, each with source, destination, wire, protection and notes.
  • Load budget: about 7.4A of known loads (visor under 2.4A, Color Flood 3.3A max, U-Lites 0.70A, Z-6 heads under 0.5A each as an estimate), with the BooYu, Putco and rocker bars still to measure.
  • Amplifier mount: under the driver-side rear seat (8 Oct).

Five phases, each tested before the next one hides wires: Phase 0 before touching the truck, Phase 1 bench tests on 12V with no drilling, Phase 1b mock-up on the guard, Phase 2 truck power and mounting, Phase 3 the EFM 3.0 in the front passenger footwell, and Phase 4 final wiring and the full test. The bench section has the power supply kit and the bench wiring for each product (A to D), with the U-Lites done 10 Oct and the Color Flood bar done 11 Oct.

Everything bought with the per-item price paid, and everything still to buy in buying order: guard mock-up and mount hardware, lights and modules, wiring day power, fuses, wire and terminals, mounting and shop labor, and install tools. Then install quantities by group. Prices marked “est.” are estimates, lengths are estimates for a SuperCrew, and running totals are kept in my spreadsheet and not published.

Two UBL 100W speakers, 11 Ω each, in parallel for exactly the CanTrol’s 5.5 Ω minimum, so the label impedance must be read before wiring (an 8 Ω rating would put two speakers below Whelen’s minimum). Each bolts straight through an existing punch plate hole on its own 1/4”-28 center bolt, with a rubber washer in front and a fender washer, nylon-insert lock nut and blue thread locker behind. The heads are stamped 8.8, so a nut gets test-spun before buying the set. An anti-rotation fix is a suggestion, not yet tested.

Two amber/white U-Lites (UBL-UL2-SM) in the upper punch plate corners on #6-32 black stainless screws with #8 fender washers behind the plate. Fed from J1-4 through a 3A in-line fuse within 12 in of the output (0.70A max for both), yellows joined for sync and one white lead used so they alternate. Bench-tested 10 Oct.

SpeedTech Raptor Elite Striker-TIR split visor bar, amber/amber, on SpeedTech’s Q-RVF15 F-150 brackets, installed 18 Oct with the cable along the headliner and A-pillar. It runs from a 12V socket plug today and moves to J1-2 through the Grand Control Box, which is required for patterns, on wiring day.

BooYu 8-head amber traffic advisor on SpeedTech headrest brackets, installed. Its controller needs the power button pressed every time it gets power, so it stays manual and J1-3 only cuts its power. The page also documents the Whelen Dominator Plus as a possible replacement that was not bought.

Two UBL 60” amber/white running board bars (UBL-TGB-AW2, SAE J595 Class 1) on one 30A relay, with the relay coil on LED Output 3 (slide 3). Not bought yet. The draw isn’t listed by UBL, so it gets measured before fuses are chosen, along with the sync steps.

Putco 60” amber/white Work Blade with the Wireless Remote Kit V3, on 3M tape on top of the rear bumper under the tailgate. CanTrol J1-5 powers it on an amber pattern, and the remote’s A button gives white override while B steps patterns. The remote is on constant power, so its standby draw gets measured against Ford’s 28 mA key-off guideline.

A SpeedTech plate bracket (12.5 x 5.75 in, per SpeedTech support) and two Z-6 TIR brake heads, amber/clear, on LED Outputs 12 and 13. The heads’ red brake wire gives steady red while braking, read over OBD-II with the Whelen CC5K1 CANport kit. A front Super Takedown version is planned for later. The page has the Z-6 dimensions, wire charts and color charts from SpeedTech’s manuals.

The Speed Turtle EFM 3.0 installed inline at BCM J3 and J7 in the front passenger footwell on 8 Oct, firmware v3.36, flashing the factory lamps through the BCM with no taps on factory circuits. F150LEDs CREE headlight, running and turn, and marker bulbs fitted, flashing clean with no hyperflash. The voltage input harness that lets the CanTrol trigger it is still to buy.

The Toughbook CF-33 programs both the CanTrol and the EFM over USB. A passenger-seat mount with a locking keyboard dock and hardwired power is planned, waiting on a used RAM Mounts setup. Fuse and wire come from the mount’s manuals once chosen.

The source rule (my documents first, then my later instructions), the four status labels (Confirmed, Estimate, Unconfirmed or inferred, Superseded), five conflicts between sources and how each was resolved, fourteen superseded plans, the ten document revisions, every owner and manufacturer document, the two support contacts and the reference links.

Before: The grille guard page in light mode. Before: the Mounting hardware table with 1/4-20 bolts, an aluminum flat bar, neoprene sheet, band clamps and corner braces. After: the Light bar mount (final, 7 Oct) section with the L-brackets, pads and stainless ties.After: The grille guard page in light mode. Before: the Mounting hardware table with 1/4-20 bolts, an aluminum flat bar, neoprene sheet, band clamps and corner braces. After: the Light bar mount (final, 7 Oct) section with the L-brackets, pads and stainless ties.
Drag to compare the grille guard page. Left: before PR #28, still listing the 5 October proposal hardware. Right: today, with the final 7 October mounts.
Topic What the page said before What it says now
Lower tube About 1-3/4 in, read from photos 1.91 in OD (6 in around), under 1/16 in gap to the punch plate, center verticals 13.5 in apart. Measured with a tape on 7 Oct, with four photos
Light bar mount Thin stainless band clamps and 1-1/2 in corner braces The bar’s own included L-brackets, rubber pads and two JOUGU coated stainless ties per bracket, tensioned with the ZOOSUNX tool
Speaker mount L-brackets bolted through the plate with 1/4”-20 hardware and aluminum backing plates The speaker’s own 1/4”-28 center bolt straight through an existing punch hole, no L-bracket
U-Lite mount #8-32 screws with backing strips #6-32 black stainless screws, #8 fender washers 1-1/4 in across, nylon-insert lock nuts
Hardware list The 5 Oct proposal list The final list, with a “Dropped from the 5 October proposal” section so nobody buys the old parts
Wire storage No section Seven-step plan for storing the guard leads in loom until wiring day, with parts
Touch-up A flat black spray for drilled or enlarged holes The 23 Oct refinish: damage found, the two-day method, every supply with its Home Depot SKU and the lesson about steel wool
Mock-up No section Six checks, two done on 10 Oct
Shop install No section Why a shop mounts the guard (the splash shield needs trimming at the tow hook brackets) and the scope of work
Guard part 50-1420C 50-1420C, with the 2015 to 2017 fitment confirmed on 22 Oct

The overview gained a vehicle baseline table (truck, roof, seating and console, equipment console, factory lamps, guard, lower tube, battery), a workstreams table with the current state of each, the full component pages table, an updated parts list, safety notes expanded with airbag, coax, siren testing, drilling and painting rules, the open items split into measurements, decisions, confirmations and purchases, and a twelve-row troubleshooting table. Its changelog records the rebuild with a link back to this entry.

Page Change
UBL Color Flood 2.0 light bar Added the 5A fuse allotted for the power feed and the 295HFSA6 all-features bench diagram; moved to sidebar position 10
CanTrol bench test plan, Control head mount, Five modes plan Sidebar order only
Build Log index This entry added

The final sidebar order is 0 overview, 1 output plan, 2 controller, 3 power and wiring, 4 bench test, 5 install plan, 6 parts list, 7 five modes, 8 grille guard, 9 siren speakers, 10 Color Flood, 11 U-Lites, 12 visor bar, 13 rear traffic advisor, 14 rocker panels, 15 Putco, 16 rear plate Z-6, 17 factory lamps, 18 control head mount, 19 CF-33 mount, 20 decisions and sources.

All 22 came from my project files and were re-encoded with metadata stripped. Product photos, drawings and charts are labeled as such on the pages that use them.

  • My documents first. Where a document disagrees with an imported chat, the document wins. Where I gave a later instruction, the instruction wins. Every remaining disagreement is listed on the decisions page.
  • Grounds: the side of a steel frame rail or the Ford Q-231 point on every wiring table. Never battery negative and never the aluminum body.
  • Final mounts: the 7 Oct decisions (speaker center bolt, light bar on its own L-brackets with ties, U-Lites on #6-32). The 5 Oct proposal hardware is marked superseded.
  • Labels: Confirmed, Estimate, Unconfirmed or inferred, and Superseded. Anything not confirmed says so or reads TBD.
  • No invented specs. Unlisted draws, IP ratings and fuse ratings are open items, not guesses.
  • Prices: per-item prices paid are shown. Running and group totals are not.
Left off Why
The gun vault Security
The cab organizers Kept off by my choice
The control head serial number Identifies the unit
Spend totals and running totals Kept in my spreadsheet only
Location and state details Privacy
Speaker sticker designs Some use the Florida state seal and agency-style logos
Seller listing photos Not mine to republish
Photo metadata Every image re-encoded; cab photos in my documents carry GPS
Problem What caused it How it was solved
The grille guard page described a superseded plan It was written from the 5 Oct proposal before the 7 Oct decisions were in the source Rewritten from the final decisions, with a “Dropped” list for the old parts
The tube size was wrong A photo estimate (about 1-3/4 in) Replaced by the 7 Oct tape measurement, 1.91 in OD
The old header had numbered callouts the new photo lacks The new image is a real photo, not a mock-up The alt text names each part; numbers can be added if I want them
Sources disagreed Five topics (head location, console, ground point, roof, U-Lite washer) Each resolved and recorded on the decisions page
The project document’s revision 7 is missing from the main history Only the appendix was issued at revision 7 Recorded as such in the revision table
No local build The container’s Node is below Astro’s minimum The Cloudflare preview on PR #28 was the build check, and it passed
Two requests for the same thread overlapped The header swap and the rebuild arrived two minutes apart The swap shipped in its own small PR (#27) and merged first; the rebuild followed in #28

Reading every F-150 page and source side by side for this entry turned up these. Only the totals were fixed in this pull request.

Finding Detail
Page count The section has 21 pages (the overview plus 20), not “20 pages, up from 8” as first reported
Document cover The PDF’s cover still reads “Revision 8, 16 Oct 2026”, while its contents and revision history run to revision 10 (22 to 23 Oct)
Totals on four pages The decisions, parts list, rear plate and grille guard pages still showed group totals, the touch-up spend and one order’s total with tax and discount. Removed on 27 Oct at my call; per-item prices stay
Wire IDs The wire schedule calls the Color Flood wires C1 to C8; the Color Flood page calls them CF1 to CF8, in a different order
Draw source The bench test plan calls the Color Flood’s 3.3A a “UBL rating (confirmed)”; the Color Flood page says it comes from my proposal and is unverified
Roof The project document says sunroof; my standing notes say panoramic roof. Either way, nothing mounts on the roof
Check Result
Cloudflare preview build of PR #28 Passed
Local production build before PR #28 39 pages
Local production build after PR #28 53 pages, built with Bun because the container’s Node is too old
Sidebar order and component table links Checked in the screenshots on this entry
Images re-encoded with metadata stripped Done for all 22 in PR #28 and the one in PR #27
Anything on the truck No new tests. This rebuild documents the plan. Bench-tested items are still only the Color Flood bar (11 Oct) and the U-Lites (10 Oct); the EFM bulbs were verified in the truck on 8 Oct
  • Rebuild from the source, not from the last page. The grille guard page looked complete, but it was a faithful copy of a plan I had already replaced. Only reading the source again caught it.
  • Keep the superseded plans visible. A “Dropped” list and a superseded table stop anyone buying the old parts, and show why the plan changed.
  • One rule, every table. Writing the ground rule onto every wiring table, instead of one note on the overview, is what makes it hard to get wrong on wiring day.
  • Labels beat hedging. Confirmed, Estimate, Inferred and Superseded say exactly how much to trust each line.
  • Small change first. Shipping the header swap as its own PR let it go live in six minutes while the big rebuild was still being written.

Truck

  • Bench test the CanTrol with each product (the ten-stage Gen 3 guide), measure every unlisted draw, and fill in the TBD cells.
  • Confirm the speakers’ 1/4”-28 thread and label impedance, and that each fits its bay.
  • Confirm the U-Lite #6-32 screws and their spots over the plate holes.
  • Read the CanTrol module label (CANWCT3 is needed for brake pop) and check that Whelen Command lists Brake for the 2017 F-150.
  • Measure the wire runs and the control head cable length.
  • Confirm the Optima DH7 fits the tray.
  • Order the rocker bars, the EFM voltage input harness, the relay, fuse blocks and wire.
  • Book the shop install of the grille guard. The Ben3DBuild mount arrives 2 to 3 weeks after 21 Oct.
  • Decide the five modes questions (head layout, visor bar routing, rocker bar outputs, Putco white).

Site

  • Match the Color Flood wire IDs between the wire schedule and the Color Flood page.
  • Correct the bench test plan’s “UBL rating (confirmed)” note.
  • Update the PDF cover to revision 10.
  • Add the project start date (currently TBD).

Bench test the CanTrol with each product, measure every unlisted draw, and fill in the TBD cells.

  1. 2026-10-27

    Expanded into the full build record: sources, revision history, timeline, both PRs, all thirteen new pages, the grille guard correction with a before/after slider, the overview rebuild, all 22 images, rules, privacy pass, problems, findings, lessons and open items.

    Rollback: Revert the commit that expanded this entry.

  2. 2026-10-27

    Entry published with PR #28.

    Rollback: Revert the commit that rebuilt the F-150 section.