Project Updates – March 2019
It’s been a while since I last posted projects I have been working on, so thought I would make a quick summary of what has been keeping me busy in recent times.
Firstly, I made a blinky, binary counting business card using a PIC12 and a bunch of charlieplexed LED’s. It was a first for me on many fronts: the first board with a significant amount of surface mount components, the first time I had used the PCB itself as a mechanical component to hold the battery in, and the first time using a PIC microcontroller.
As I was unsure of how stiff the PCB was at 0.8mm, the first version (below) has significantly less FR4 around the battery holder, as I was concerned that I would not be able to insert the battery. That version ended up being too flexy and resulted in the warping of the board, so a rev 2 with more material around the holder (above), a ground fill on the back, and a few small changes to the routing was made and I’m quite happy with how it turned out.
I also made a pogo pin fixture to help program the boards, as I placed smd pads on the back of the board to connect the PICKit to. The fixture also helped during development as it allowed me to keep the board connected to power and the programmer whilst the firmware was developed.
Honours Project – Low Cost Vector Network Analyser
For my final year project, I have chosen to build a low cost Vector Network Analyser (VNA). At the time of writing, development boards for the LO, Filter Bank, and Source Levelling have all been assembled, with firmware for the source levelling board being complete, and the LO firmware is partially functioning. Test boards for a number of MiniCircuits couplers have also been manufactured, to asses their suitability for the design. Once the LO board is working all functional blocks will be tested, and a single PCA containing all of the components will be assembled and bring up will begin.
One challenge with bring up of the LO board is that as I built the board and am writing the firmware, identifying if an issue is in hardware or firmware is a bit of a challenge and has been slowing development. Fortunately at time of writing SPI readback from the MAX2871 has been successful, and the internal VCO’s have been observed to change as the frequency is varied. However, the PLL is unable to get a lock and this obviously prevents an RF output from being produced, which is less than ideal. Whilst I would have liked to develop the firmware on a known good board, the Eval kit from Maxim is over $500 so until I win the lottery I’ll continue to attempt to get this board working.
With all the hype about #badgelife at DEF CON, I thought it would be a fun project to try and make an electronic badge, even if I wasn’t making the trip over to the states for the con.
Two boards were designed, both sharing the same idea but one was a bit more ambitious than the other, and depending on how I went with the more complicated board I could fall back to the simpler option. After a few bodge wires I got the more complicated badge up and running with some test firmware, however Uni and life got in the way so the board is now gathering dust until it makes it’s return, hopefully sometime in the near future. As the project may return one day the design will remain behind closed doors, but it was a interesting challenge due to some aesthetic constraints.
During this build I learnt about a hacker con in the ACT – BSides Canberra, and decided I would make a ‘Shitty Add On’ for the official conference badge. The hardware is a ripoff of my business card, but with more LED’s and less buttons. It plays the end Tic-Tac-Toe scene of WarGames using coloured LED’s to represent the two players. At the time of writing 10 boards have been assembled, with another 10 or so to be built in time for distribution at the conference. Once BSides is over I’ll add some footage of it functioning below.
I also put my name down as a volunteer for the conference, and as part of that made a bunch of programming jigs which made flashing the over 2000 badges for the conference a quicker and easier task than the original plan of just using pogo pins soldered onto a PCB and manually aligning them to the header on the badge.
Astra Keyfob Decoding
I also spent some time decoding and attempting to exploit what I thought was an enumeration risk in my 2004 Holden Astra’s keyfob. At first appearance, the keyfob appeared to use an incrementing code along with a fixed lock/unlock code for each key, and I wrote some scrips to split the manchester encoded series of bits into the specific values in the key, along with some C code to transmit the next code in the series. However my downfall was that I didn’t realise that the ‘fixed lock/unlock’ code for each key was actually a rolling code unique to each key, and as such my basic attack failed to work. By this point I had developed a bunch of MATLAB scripts and code for the ATmega328p so decided to upload it to GitHub just in case is is useful for anyone who is trying to do something similar.
Looking at the year ahead, the VNA will take up most of my spare time this year but will be really rewarding if I can get it working as planned. Hopefully I can find some time between uni, grad job applications, and life to write about it, otherwise project updates will be on Twitter and Instagram if you are interested in seeing where all of these projects end up.