Ollie is designed to be a flexible tool; one really cool feature is running a dual CAN firmware so the user can run the desired firmware without having to reflash the device every time.
The firmware can be selected using the DIP switch. The default firmware is forked from candleLight_fw and cantact-fw. Both firmware binaries are stitched together into one binary file. The base firmware is candleLight, on startup if the switch is toggled it will jump to CANtact/CANable. For more info on how to use the CAN supported applications see the github documentation.
If you would like to make any changes to the firmware and rebuild, here’s how:
Download and install STM32CubeIDE
The build should result in 2 binary files,
gsusb_ollie.bin, using HxD
Scroll down to the end of the file, and fill in FF until address 00003CFF.
Again using HxD open
canable-xxxxxxx-dirty.bin, press CTRL+A to select all and Copy.
Go back to
gsusb_ollie.bin and paste.
canable-xxxxxxx-dirty.bin should start at address 00003D00
Here you go, this is how to combines both binaries into one. There are other methods for doing this, but I think this is the simplest way.
The main goal during design was to keep this device as compact as possible. The solution was to isolate the host USB, instead of isolating 15 pin channels. This helped maintaining a small footprint while keeping the cost relatively down.
The schematic files are now available on Github.