This is a note for Future John. I found this no-nonsense video about how to program the ATtiny85 using an Arduino: How To Easily Program The Attiny85
Category Archives: Programming
MilliForth-6502, A Forth For The 6502 CPU
I have a new post on Hackaday: MilliForth-6502, A Forth For The 6502 CPU.
Some material was deleted by the editors so I have included it below for the archive.
The main code is the assembly code in sector-6502.s.
These are the commands I ran to take it all for a spin:
mkdir /tmp/milliForth-6502 cd /tmp/milliForth-6502 git clone https://github.com/cc65/cc65 cd cc65 make sudo make install cd .. git clone https://github.com/ShonFrazier/lib6502 cd lib6502 make sudo make install cd .. git clone https://github.com/agsb/milliForth-6502 cd milliForth-6502 touch out source do1 sector-6502 wc -c sector-6502.out hd sector-6502.out
Building A Custom Zynq-7000 SoC Development Board From The Ground Up
I have a new post on Hackaday: Building A Custom Zynq-7000 SoC Development Board From The Ground Up.
The presenter starts by designing the power system, then makes progress on power, improves the schematic, integrates DDR RAM, adds USB PHY, Ethernet PHY, and SD card, starts on HDMI, makes progress on layout, makes progress on routing, continues with routing, configures with Vivado and estimates costs, receives PCBs and components, starts the PCB assembly, adds power rail components, adds core components, connects power and does initial programming, makes an LED blink, gets the ARM APU working, troubleshoots FT2232H to JTAG, resolves FT2232H to JTAG issue, adds UART and DDR, gets HDMI working, installs PetaLinux, and at long last configures USB and Ethernet in PetaLinux.
See AMD Zynq 7000 SoCs for specs from AMD. The executive summary is that this SoC includes an ARM Cortex-A9 Based APU and an Artix-7 FPGA (or a Kintex-7 FPGA on higher models). We suppose this is an opportune time to mention that in case you missed it Xilinx was recently acquired by AMD which is why you see the AMD branding now.
Summarizing references from these videos, other videos include What your Differential Pairs Wish You Knew and How to Achieve Proper Grounding by [Rick Hartley]; books referenced include Printed Circuits Handbook 7ed and Signal and Power Integrity Simplified 3ed; courses referenced include Mixed-Signal Hardware Design with KiCad and Advanced Digital Hardware Design from [Philip Salmony]; and software used includes EasyEDA, Vivado, Vitis IDE, and Tera Term.
Rockbox 4.0 Released
I have a new post on Hackaday: Rockbox 4.0 Released.
The Spade Hardware Description Language
I have a new post on Hackaday: The Spade Hardware Description Language.
ATtiny85 in HW-260 board
I have my ATtiny85 microcontroller installed in a HW-260 development board (purchased from AliExpress). I program the ATtiny85 with the SparkFun Tiny AVR Programmer, the setup guide is here: Tiny AVR Programmer Hookup Guide.
On the SparkFun programmer the onboard LED is PB0. On the HW-260 the onboard LED is PB1. This is the code I used to flash the HW-260 LED:
#define LED_BUILTIN PB1
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
You can see the programmer settings I used in Arduino IDE in this screenshot:

New Zealand’s $16 Billion Public Health System Runs on a Single Excel Sheet
This is a note for Future John: New Zealand’s $16 Billion Public Health System Runs on a Single Excel Sheet.
From the report:
Notably, one major issue was through a significant reliance on the use of an Excel file to manage the consolidated financials of the organisation. This spreadsheet was the primary data file used by HNZ to manage its financial performance. It consolidated files from each district into a single spreadsheet, and key reports, such as the monthly finance report, were produced from it. The use of an Excel spreadsheet file to track and report financial performance for a $28bn expenditure organisation raises significant concerns, particularly when other more appropriate systems are present on the IT landscape.
This Excel file is flawed in that:
- Financial information was often ‘hard-coded,’ making it difficult to trace to the source or have updated data flow through.
- Errors such as incorrectly releasing accruals or double-up releases were not picked up until following periods.
- Changes to prior periods and FTE errors in district financial reporting Excel submissions, would not flow through to consolidated file.
- The spreadsheet can be easy to manipulate information as there is limited tracking to source information where information is not flowing directly from accounting systems.
- It is highly prone to human error, such as accidental typing of a number or omission of a zero.
…
The cumbersome process of collecting data also meant monthly financial reporting usually took 12-15 days to consolidate and 5 days to analyse. Adding to that the time associated with the creation of the monthly finance reports and circulation of these to the Board, there was an inevitable challenge of obtaining real-time financial information from one source of truth.
Church Of Turing
In my feed today: Church Of Turing. It’s about four Lisps: Scheme, Common Lisp, Clojure, and Racket.
Modern C Features
I’m expecting a fair bit of C programming (or C++) in my future because of Arduino and other microcontrollers. Today I came across modern-c-features which enumerates the new features in C.
How Clay’s UI Layout Algorithm Works
This in my feed today: How Clay’s UI Layout Algorithm Works:
Clay is a UI layout library written in C, and this video gives a high level explanation of how the flexbox-like layout algorithm in Clay works.