Start of a 5.1 surround monitor box project

Years ago I was working with Barry  Porter, of Trident/Cadac fame, on a little 5.1 monitor selector using the now obsolete Wolfson WM8816 integrated circuit. I’d met Barry while working on Final Test at Cadac, a strangely disfunctional, but successful company  (Enid…)

I’d been working on and off as stage crew, in Video Village, all over Europe. Barry used to pick me up from Luton Airport, and drive me home from those depressing corporate soul sucking video gigs. It was great to get back to my little  scruffy spare bedroom  workshop and “do” some analogue. We chatted for hours on the phone about studio audio, I was good at Studers, A80’s  etc. and he was great at consoles.  A good mix.

Good days.

I was doing the 8051 programming for the Monitor Box, as Baz didn’t have a clue, but I was sort of OK with doing 8051 stuff at the ground level / interface in C.

Anyway Barry died and so the 5.1 project ground to a halt, and I had moved to Spain.

So this is my little tribute to Baz, and my modern  version of what I hope Baz would approve of.

Found the display bug

The Jenny program consists of 2 parts, a LTC reader and a LTC generator joined together by a teeny bit of code that monitors  a push button every frame in TC read, if the button is held down for 25 consecutive frames it transfers from TC read , (storing the current incoming LTC of course) at bit80, the end of the current frame, and trundles over to the TCgen code in a microsecond or so, continuing from the LTC stored when the reader handed over to the Jenny.  It needs most of that microsecond to set up the numbers for the frame rate counter, figure out if DF or NDF standard, and look up the fiddle factors to compensate for any long term TCXO errors, from when the board was calibrated against my rubidium clock.

The TCreader has a lot of debugging code in it, like set a port pin high or low if something (defined by me) happens. I use the AVR’s PORTB for debugging, just convenient for the circuit board that I made.  The graphic LCD has it’s reset line connected to a PORTB pin, and somewhere in the TCreader this pin is being set low, unintentionally, so stopping the display, so not a faulty display, just me being untidy.

The TCgen has been running on the bench for a couple of weeks without dieing,

Happy, just got to get some enthusiasm to find the bug in the Reader part of the code.

TC Jenny

My TC Jenny, was just going too well, then the graphics display dies after a few minutes , and it was looking quite pretty.

So far

It reads external time code, all flavours.

IMG_1562_crop

It generates TC and will jam to external code, frame accurate. It’s only running off a standard 50ppm accuracy crystal, so about a frames drift every couple of hours, a TCXO will fix that.

IMG_1561_crop

Reads TC via the 433 MHz receiver, haven’t got the signal strength metering working, or any simple error checking.

Haven’t got the menu working, run out of push buttons, needs a a 9V battery, I need to get my hands on a little  switch mode IC so it can run off 2 AA cells, like the LTC3499, looks like a nice little animal.

It uses a Atmel micro which is almost full

AVR Memory Usage

—————-

Device: atmega88p

Program: 7672 bytes (93.7% Full)

(.text + .data + .bootloader)

Data: 117 bytes (11.4% Full)

(.data + .bss + .noinit)

The main program is only about 2300 bytes of that, most of  it is storing the fonts for the display, so it needs a chopping down with a chain saw, so I can get the Menu in.

Got sidetracked

A quick test to see how a cheap  inexpensive graphic LCD can display real time LTC, and evaluate the LCD in terms of how much modification to the open source software is needed

Take a bright yellow Hammond 1553 plastic box and hack a hole in it.
Image
CNC Milling it under water cools the milling bit so the plastic doesn’t melt. Only took a couple of minutes to cut the hole, nice clean edges.
Blu-tack a LCD module,a cheapo generic RF receiver module and little circuit board left over from another project.
Image
Copy some software I wrote from my precision TC generator into the microthingy, and bodge it to use a LCD instead of a LED display.

Image

Almost got it straight..

Just need a matching red box for the LTC transmit side of the equation.

Not bad for a couple of days work.

The new box arrived

A lot of spare time now, so more done on the box, it’s been sitting around for long enough. I’ve been playing around with the clapper, countersinking the brackets. It looks nicer, but takes a very long time to mill in my Sherline CNC setup, much more than a couple of hours.

The weight is about 520g, just over a pound, with batteries.Image

Much neater than my metal work, pity they ignored my “No Screw Holes  to be Visible”. A minor miss-comprehension! Otherwise all OK.

It cost over the equivalent of one months apartment rent.

IMG_1529sml

IMG_1531sml

IMG_1532sml

Still a few things to consider such as the  paint finish, should it have a removable transparent  polycarbonate front plate, so you don’t need to write on the box.

This is what it looks like before I finish the wiring. That’s the last development board being sacrificed. The new one (to be) is much better in terms of talking to the outside world, that’s switches and button to press, and possibly LTC out, after it has been jammed.

IMG_1526sml

Can’t do much more until the Molex connectors arrive, hopefully tomorrow

Just about finished

All the code works, it’s stable, and so is the hardware.

Just waiting for the finalised metalwork to turn up.

My Vinten tripod is on sale on Spanish Ebay to help pay for the first batch.

The only things left to do are add and test an off the shelf bootloader program so the slate can be re-programmed without Return to Base hassles through the USB port.

Nice for custom apps.  A very accurate intervalometer for DSLR’s was the first thing I thought of.

Ball park price? 500€ or about 650$

Cross jamming time code

Hmm,

Just checking the timing (again), feeding the slate with 25FPS from my atomic boat-anchor reference LTC generator.
The jammed slate was set to generate 23.976NDF and it crossed jammed fine, it wasn’t intentional, honest!
Accuracy was in the region of 2 parts in 10 million, measured over a 2 second period, with a 10MHz clock, and tweaked some “numbers” via the slate’s USB serial port in the temperature compensation routine.

20.020,020 Hz. This is the perfect frequency for DF code

and this is what the slate  gives out, pretty spot on
20.020,019
20.020,020
20.020,019
20.020,019
20.020,019
20.020,019
20.020,020

Probably won’t cross jam between 24 and 30 FPS, too greater difference for the LTC pulse discriminator to handle.

I could write some code to prevent cross jamming, as it could be dangerous in the wrong hands.

Not sure whether to leave as is.

Still deperately waiting for the finished case from the metal fabricators in the UK, rent’s due again, where do the days go to?

Mechanical stuff

National fiesta last Friday, everything was shut, so did a bit of machining.

Wasn’t happy with the clap hinge on the prototype, slightly agricultural.

It was really uncomfortable to hold in one hand, so I machined down the arms to make the brackets flush.

The clearance required for the hex fixing bolts was tight, so need to move the fixing hole a bit to the right.

The sharp bracket angle was annoying, so rounded them off. I didn’t have any dome headed hex bolts

A lot more comfortable to hold.

Got a few quotes for making a real protoype box, ouch, about the same as a month’s rent for my Spanish appartment. But finally got some money for an illegal naughty but race winning modification I did to a slot car controller, over 18 months ago.

Delivery, 1 to 2 weeks. 3 to 4 weeks, arghh

The end is in sight.

The first real test, run over night, free running jam mode

It works.

I connected the clap sensor on the slate to a spare pin on the TCG microprocessor,(Red phono lead) and told the TCG to freeze the display when the clap arm was closed. Closing the clapper many times, it seems as if the slate is running slightly fast, maybe  1/4 to half a frame after 8 hours. About what was expected.

The software that does nanotweaks to compensate for any basic crystal oscillator offset was not enabled. Workshop temperature was about 23C. The whole thing was run on a 5V bench power supply, since the slate display was on all the time, I didn’t think the internal 4 AA batteries would last overnight.

Pretty good for a less than 5€ TCXO.

 

EDIT:

12 hours in, still under 1 frame fast, that’s about 1 part per million accuracy

Boring Battery Test

I hadn’t done any battery life tests on the slate, somewhat amiss, so I added a couple lines of code that turned on the display at full brightness for 1 second every minute in Jam mode. I think this maybe a reasonable test, and it’s easily repeatable.

The batteries are Panasonic NiMh 2100mAh, almost new, with less than 10 recharge cycles.

I ran the test, first for 3 hours, 180 “slates”, switched it off overnight, then left it running until the battery volts dropped to 4.8V, (1.2V/cell) measured when the display was off. The slate electronics will work down to about 4.1V, when the switched mode supply for the display doesn’t switch any more.

Time        no load        full load
0                5.36            5.20
30 min     5.30        5.12
1hour        5.25        5.12
1hr30      5.22        5.06
2hr            5.20        5.03
3hr            5.16        4.95

Over night rest

0            5.19        5.02
1hr        5.14        4.98

Off to the street cafe for breakfast, more later.

2hr        5.11        4.96
3hr        5.10        4.93
4hr        5.08        4.92
5hr        5.07        4.91
6hr        5.07        4.89
7hr        5.06        4.86
8hr        5.05        4.85
9hr        5.05        4.85

Getting boring.

10hr        5.05        4.86

Take Two, 5 seconds on each minute, duty cycle 8.3%

Time        No load        Full load
Start        5.33        5.18
30min    5.27        5.13
1hr          5.20        5.06
2hr         5.11        4.96
3hr         5.04        4.91
4hr         5.02        4.88

bedtime

Re start   5.09        4.93
1hr        5.01        4.86
2hr        4.99        4.85
3hr        4.97        4.82
4hr        4.96        4.81

etc.

10hr        4.84        4.69

Conclusions

The software hasn’t crashed, and it looks as if 18 hour battery life  might be attainable