1
0
Fork 0

Compare commits

..

No commits in common. "92bcb1e4b99f0ea61682aac9f07ee4f141d899a9" and "f89bb2c6da59092b413f0b1ec638f3f5dc63260b" have entirely different histories.

6 changed files with 13 additions and 41 deletions

12
.gitignore vendored
View file

@ -5,11 +5,11 @@ result
# Vale
/styles/*
!/styles/config/
./styles/*
!./styles/config/
/styles/config/*
!/styles/config/vocabularies/
./styles/config/*
!./styles/config/vocabularies/
/styles/config/vocabularies/*
!/styles/config/vocabularies/Base
./styles/config/vocabularies/*
!./styles/config/vocabularies/Base

View file

@ -4,8 +4,6 @@ MinAlertLevel = suggestion
Packages = write-good, proselint
Vocab = Base
[*.{md}]
# ^ This section applies to only Markdown files.
#

View file

@ -1,9 +0,0 @@
---
title: Hacking Hikmicro part 1
description: Reverse engineering the Hikmicro Pocket C to understand the image format
---
I recently picked up a Hikmicro Pocket C thermal imager, since
my old Seek Thermal was becoming too annoying to use. The Pocket
C is a standalone device with a much better sensor. It supports
radiometric images as well as radiometric video and USB radio.

View file

@ -6,10 +6,10 @@ date: 2024-06-14
## A history lesson
During the semiconductor revolution, a dilemma appeared: Designing new integrated circuits
During the semiconductor revolution, a dilemma appeared: Designing new ICs
required a lot of time and effort to create the mask, and iteration
expensive. Due to limited tooling, ICs could not be complex designs.
Techniques and tools to do tasks like optimization or place-and-route did not exist or were primitive.
expensive. Due to limited compute capability, ICs could not be complex designs.
tools/compute to do tasks like optimization or place-and-route were limited.
And what if you wanted a low-volume design? Programmable Logic Arrays (PLAs)
were an early approach to these problems. The idea was simple: create a
flexible logic architecture that could be modified later in the process to
@ -40,7 +40,7 @@ electronically-erasable, 22-pin programmable logic block, which had up to 10
outputs that are registered and used for feedback. These outputs can be tri-stated
to give greater flexibility.
![A figure shows the Output Logic Macro-cell, or OLMC. The OLMC consists of a D Flip-Flop, feedback routing, and 4-to-1 mux to select behavior](gal_olmc.png)
![A figure shows the Output Logic Macrocell, or OLMC. The OLMC consists of a D Flip-Flop, feedback routing, and 4-to-1 mux to select behavior](gal_olmc.png)
## Back To Today: GALs in the 21st Century
@ -63,7 +63,7 @@ GALs operate at 5 volts is useful when interfacing with older systems and
removes the need for a level shifter.
In practice, this isn't all great. Programming GALs is an exercise in frustration.
However, this isn't all great. Programming GALs is an exercise in frustration.
Take a look at a basic combinatorial assembly file:
```PALASM
@ -113,7 +113,7 @@ Not particularly.
Well, there is a niche use case. These parts are 5-volt tolerant, and
come in DIP packages. If you needed some basic glue logic when working on an
older 5 volt system, you might want to have a few of these and a programmer
instead of a collection of 74-series logic. These chips can
instead of a collection of 74-series logic. At the very least, these chips can
emulate any 74-series chip, and can reduce a multi-chip design to a single
chip. The DIP form factor makes it much easier to breadboard, and the chips
have zero start up delay.

View file

@ -1,5 +1,6 @@
export default {
tags: [
"posts"
],
"layout": "layouts/deck.njk",
};

View file

@ -1,18 +0,0 @@
Verilog
FPGAs?
Yosys
ICs?
PLAs?
toolchains?
testbench(es)?
bitstream
gateware
mux
# Terms for electronics
GALs?
BGA
DIP
SSOP
QF[PN]