HAI Omni engineer/developer thread

Here's a schematic of the EPROM jumpers described in post #16. The flash chip is completely disabled by removing the jumper, perfect if you want to use the EPROM socket for an emulator or a chip with different firmware. HAI likely used this for initial/recovery programming of the firmware flash.

EDIT: I've confirmed this on a 4.0b firmware flash board by removing the JP10 jumper and installing a 3.0 chip eprom. The panel started up after a short delay and showed 3.0 firmware. It erased the installer code and other things (DCM phone number, etc.) in the CPU internal eeprom but other setup info seems to be there. Removed the eprom chip and put back JP10 jumper and panel starts up with 4.0b firmware. We now have a easy way to reset installer code on a flash board!
I must be missing a step. I bought a used Omni2e 5 serial port version. It seems to be working. I can check zones for example. I can ping it on my network. Since I don't have any codes, I removed Jumper 10 and put an Omni 2e eprom (2.15a) on the board. It never came up on the eprom. It turned on the leds for power, phone off-hook and one of the network leds.
When I remove the eprom and put J10 back, it's back as I originally got it. What am I missing?
Thanks
 
Last edited:
I must be missing a step. I bought a used Omni2e 5 serial port version. It seems to be working. I can check zones for example. I can ping it on my network. Since I don't have any codes, I removed Jumper 10 and put an Omni 2e eprom (2.15a) on the board. It never came up on the eprom. It turned on the leds for power, phone off-hook and one of the network leds.
When I remove the eprom and put J10 back, it's back as I originally got it. What am I missing?
Thanks
No bent pins? How long did you wait? First power on will appear dead while it takes 2-3 minutes erasing and re-writing memories and the STATUS led won't blink until it is finished. Don't power off during this time. If no change after 3 minutes then something is wrong.

EDIT: confirmed this problem was the panel is actually an LTe for which we currently don't have any firmware images
 
Last edited:
No bent pins? How long did you wait? First power on will appear dead while it takes 2-3 minutes erasing and re-writing memories and the STATUS led won't blink until it is finished. Don't power off during this time. If no change after 3 minutes then something is wrong.
No bent pins, waited longer than 3 minutes, tried 3 different eproms. Status led stayed off.
 
I've released a utility firmware to reset the installer code, in this separate thread, using all of the info from my reverse engineering documented in this thread (many older posts updated with new information).
 
Hard to believe it's been 16 months since I started this thread. Along the way I created the only active HAI Omni development environment in the world. Other projects are taking most of my time now so I want to document some of the free software I used. I do all of my work in Linux which has a lot of built in tools like dd (extract or overwrite parts of a binary file) and xxd (can apply a patch to a binary file).

The DIS12 disassembler from 2001 works well enough, but needs changes (mainly va_args) to compile with modern tools. Someone (eyudin) did that in 2018 and put it on github. My patch attached below fixes 1 remaining compile error and modifies the SWI instruction behavior as described in post #34.

(2001 version) DIS12 Disassembler for the Motorola HC12/STAR12 Family
https://hc12web.de/dis12/

Updated (2018) fork of DIS12 (apply patch to this):
https://github.com/eyudin/dis12

Code:
Extract and disassemble last 16kB of 1MB firmware file:

dd if=1MB_firmware.bin ibs=1 of=/tmp/last16k.BIN skip=1032192 count=16384
dis12 -o C000 -b -0001 /tmp/last16k.BIN


The HSW12 assembler has a lot of nice features that I use in my utility/diagnostic custom firmware. It's a 14000+ line perl script so needs perl to run. If only using from command line you just need 2 files (hsw12asm.pl, hsw12_asm.pm):
https://github.com/hotwolf/HSW12


SRecord tools for converting/creating ROM image files (included with Linux or download Windows version):
http://sourceforge.net/projects/srecord/files/srecord-win32/1.65/
Code:
Assemble program and create 512kB ROM image file:

hsw12asm.pl myprog.s
srec_cat -output /tmp/full512.BIN -Binary myprog_lin.s28 -offset=-0x80000 -fill 0xFF 0x0 0x80000
 

Attachments

Last edited:
Back
Top