AVR Pong – Peggy2 & Danger Shield

This post should really be titled “AVR Pong, and some other non-firsts”.

Avrpong

I saw the Peggy2LE and decided that it was something that I just had to have. I mean, 625 LEDs on one board can’t be bad, right? Well at least that was what I thought, until I tried to solder 1250 LED leads in one night.

Peggy2le

Anyway, to make a point out of this, I decided to make a Pong game, using the Peggy2 and a Danger Shield courtesy of Little Bird Electronics

So why is this interesting? Well there are somes significant firsts in there for me.

  1. Not just multi tasking (using freeRTOS), but real multi-processing using 2 AVR devices. The two AVRs communicate using the I2C bus.
  2. Developing an I2C code base that can simultaneously be Master and Slave, and is interrupt driven. I hope that the code can do MultiMaster too, but I haven’t fully tested it.
  3. Building a robust efficient video transfer protocol between the game mechanics AVR and the video (Peggy2) AVR. Using prioritised row updating and a CRC8, which I think it is pretty robust.
  4. Building a buzzer routine that can play melodies, with real notes, again fully interrupt driven, using Timer 2 (the Danger Shield buzzer is connected to PD3).

None of these things are original. In fact most of the code is borrowed from elsewhere, and the sources can be found in the files. But, I’m pretty stoked to have made it all work together, under freeRTOS. Small things, as they say, amuse small minds.

Code at AVRfreeRTOS at Sourceforge.

Updates with more detail when it is not so late.

Our NBN; make it better, please

I’ve written my personal thoughts on the difficulties in creating a successful outcome for the NBN in Australia previously  in Our NBN is an Engineering Fail.

And today I made some comments on the “jumping the shark” article on ZDNet, which got me soundly voted off this small Island. Jumping the shark.

But, before I pack my bags and depart, I thought that I should leave some positive words on what the NBN Co could do better, and remove my humble objections to the path they’ve taken.

1. Commit to a public “rising tide” deployment strategy.

The principal of providing broadband access to all of Australia is commendable, and should be pursued. But, the current deployment strategy is opaque and leaves us open to believe that it can be gamed for political grounds.

Secondly, it is clear that as a result of the existing deployment strategy, existing functional high performance broadband networks are destined to be switched off earlier than necessary.

The deployment strategy should pursue the path of providing broadband to those with no broadband first, before any customer with an existing DSL service is overbuilt. Once this is achieved, then those with a ADSL 1 or other slow or older broadband technology should be over built.

Radio and satellite deployment schedules should clearly be continued.

Obviously this strategy would reach those with ADSL2+ next to last, and those with HFC network access last of all. This is a good thing, as it would focus the initial effort and money on the areas where no network service currently exists.

This deployment strategy would allow the average national broadband speed to float quickly upwards on a “rising tide” of performance, as the lowest performance outliers are removed.

 2. Devolve all vendor contracts into contestable segments of no greater than $100 million.

There is no technology that can’t be devolved into contestable packages of around $100 million or less. The idea that the NBN Co can sign off exclusive contracts for $1+ billion dollars, without any competitive options, and without sufficient in-house resource for intense contractual performance scrutiny, is just lunacy.

Experience shows that smaller contracts ensure that deliverables can be more closely aligned with outcomes, and are much less likely to have significant cost over runs. Agile delivery of outcomes is required here.

3. Establish competitive tension in procurement.

The NBN Co should ensure that each and every technology package is procurable from at least 2 geographically diverse technology vendors, with demonstrably different supply chain mechanics. It takes just one geo-tectonic event (Icelandic dust clouds, or tsunami for example) to lay waste to an entire geography for months. Disruptions to a single vendor’s supply chain should not have a downstream effect on every supplier to the NBN and the resulting build schedule.

Vendors also sometimes take mis-steps in their development processes, leading to obsolete equipment being placed into the field. Over a 10 year build process, it is relatively difficult to keep watch that procured equipment remains fresh, when no competitive tension is in play.

NBN Co should ensure that two “equal” vendors are selected for each and every contestable product and service segment, and that no favoured vendor is driving the NBN Co architectural outcomes.

 4. Recognise NBN Co is a utility and national standards provider and rewrite their business plan based thereon.

The political expediency to have a “positive” business case has shackled the NBN Co to an unrealistic build schedule, and elevated long term wholesale costs to Retail Service Providers.

The NBN Co should be recognised as a utility, and our wholesale network provider of last resort, to provide a broadband service where no commercial service provider is prepared to invest for a commercial return. And in return, the NBN Co should be freed from the need to cross subsidise from low cost urban deployments to higher cost deployment regions.

NBN Co should be financed from general revenue, in the same way that other major infrastructure projects are financed.

NBN Co should tender for operating companies to build and operate geographic sectors of the Australian continent’s fixed wholesale network infrastructure (based on the “rising tide” principal above) to the standards set by NBN Co, to secure the maximum involvement from private enterprise.