File format reverse engineering – Redux
I was contacted by a visitor of this site asking for the following:
‘I read your nice article on file format reverse engineering and was wondering if you could give me a small tip / hint about compression / encryption. I am trying to understand a constant size file format and need to know if by any chance the file is compressed or encrypted in a simpler way, which leaves hope in cracking it.
…
In the case you would like to have a look at the files, I generated 2 pairs. The first file pair differs only in that one variable. The second file’s name and caption are set to “;1”;, the file 2b to “;1111111…”; (31 chars)’
As the reader seeked advice on how to proceed further and provided enough information to investigate the problem, I took a look. Read the rest of this entry »
GPS Logger VII – Componets and Assembly
Finally the components arrived. The next step was to check them against a printout of the PCB to ensure that all the footprints matched up. I had already checked that the printout was a 1:1 scale of the PCB artwork.
Copper Tree
For Mothers Day this year I made an ornamental tree from copper wire. This post documents the steps that I took to build it.
Curtains for the Crusier
As I travel around Australia I will need to be able to sleep in the ‘cruiser and store items in it out of sight so I made some curtains to cover the 4 side windows, the 2 back windows and to divide the front and back. Read the rest of this entry »
GPS Logger VI – PCB Layout and Case
GPS Logger V – Full hardware
Having determined the battery and power requirements, a full schematic of the GPS logger was made. Buck regulators and Li-Ion battery chargers were investigated from a variety of manufacturers. The TC105 3.3V Buck regulator and the MCP73863 4.2V Li-Ion battery charger, both from Microchip, were chosen to provide the power needs for the project. The circuit is capable of detecting if a USB port is a Charging Port and adjusting the battery charge current to suit.
GPS Logger IV – Power and Batteries
The prototype is at the stage of being able to successfully achieve GPS lock, log the received coordinates, waypoints and go to sleep. The power usage of the system needed to be analysed in order to specify the battery requirements. The current draw was monitored after the 3.3V regulator as the device was put into its various modes.
GPS Logger III – NMEA Processing
The GPS Logger is currently able to access files and directories on a FAT16 filesystem, contained on a SD card. This post covers processing NMEA with a finite state machine and some of the problems encountered so far with the logger. Read the rest of this entry »
Using the BusPirate with a SD card
As part of my GPS Logger project I needed to make sure that I could initialise and talk to a SD card over a SPI bus. The BusPirate is an excellent tool for testing the physical and datalink layers. All parameters can be checked and adjusted on the fly without having to write any code. When the time comes to write code for the GPS logger, it will work first time as all the kinks and quirks were quickly worked out with the BusPirate.
This post covers SPI bus setup, card initialisation, reading and writing individual sectors.
GPS Logger II – GPS Interfacing
The system is now up and running. It is capable of communicating with the GPS receiver to get it into a known protocol (NMEA) and baud rate from an arbitrary starting configuration. I had to determine the pinout for the receiver as it was a USB GPS receiver. A check with the multimeter quickly identified the pinout of the four wires, TX was easy to spot as it was a constantly changing voltage whereas RX only changed when a command was sent. Once the prototyping is finished the USB receiver will be restored to its former glory. A few challenges were involved in figuring out the receivers startup configuration. It looks like at reset it outputs NMEA at 4800 baud but expects to receive NMEA configuration commands at 9600. This ‘interesting’ configuration was overcome by sending NMEA and SiRF configuration commands to the receiver at all supported baud rates. Read the rest of this entry »