aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorSelene ToyKeeper2023-11-03 13:02:42 -0600
committerSelene ToyKeeper2023-11-03 13:02:42 -0600
commita1bb12659b8c7950a76a542cdaa057d7a2cb2053 (patch)
tree8fde70bf22be26ea249d0802517a645e1941c7c9 /docs
parentadded docs/which-hex-file.md to answer the #1 FAQ (diff)
downloadanduril-a1bb12659b8c7950a76a542cdaa057d7a2cb2053.tar.gz
anduril-a1bb12659b8c7950a76a542cdaa057d7a2cb2053.tar.bz2
anduril-a1bb12659b8c7950a76a542cdaa057d7a2cb2053.zip
documentation updates...
- fleshed out main README.md a bit - improved github formatting for docs/which-hex-file.md - added 'make docs' to preview .md files as .html - ignore html files generated by 'make docs' - removed rampingios-v3.html file generated years ago
Diffstat (limited to 'docs')
-rw-r--r--docs/README.old.from-bzr-repo.txt184
-rw-r--r--docs/which-hex-file.md27
2 files changed, 198 insertions, 13 deletions
diff --git a/docs/README.old.from-bzr-repo.txt b/docs/README.old.from-bzr-repo.txt
new file mode 100644
index 0000000..a8118f7
--- /dev/null
+++ b/docs/README.old.from-bzr-repo.txt
@@ -0,0 +1,184 @@
+ToyKeeper's flashlight firmware repository
+==========================================
+
+This is a collection of firmware for flashlights or torches, mostly
+collected from BLF (http://budgetlightforum.com/). It's collected
+here mostly for convenience, and to provide bug tracking and revision
+control services for the code.
+
+See the INDEX file to find out which projects might be relevant to
+your needs.
+
+
+Getting Started
+===============
+
+The central firmware thread on BLF is here:
+
+ http://budgetlightforum.com/node/38364
+
+A general overview of what you need to get going is here:
+
+ http://flashlightwiki.com/AVR_Drivers
+
+Some useful hardware for flashing firmware:
+
+ What TK uses:
+
+ http://www.fasttech.com/product/1002900-atmega-attiny-51-avr-isp-usbasp-usb-programmer
+ http://www.fasttech.com/product/1011800-40-pin-splittable-ribbon-cable-20cm
+ http://www.digikey.com/product-detail/en/5250/501-1311-ND/745102
+ HQ ProgKey: http://budgetlightforum.com/node/63230
+
+ Ratus' guide: https://redd.it/8g5l5w (prices checked 2018-05-01)
+
+ Store A: About $4.20 shipped
+ https://www.aliexpress.com/item/USB-ISP-Programmer-for-ATMEL-AVR-ATMega-ATTiny-51-AVR-Board-ISP-Downloader/32699341177.html
+ https://www.aliexpress.com/item/WAVGAT-Programmer-Testing-Clip-SOP8-SOP-SOIC-8-SOIC8-DIP8-DIP-8-Pin-IC-Test-Clamp/32827794024.html
+ https://www.aliexpress.com/item/40Pin-20CM-2-54MM-Row-Female-to-Female-F-F-Dupont-Cable-Breadboard-Jumper-Wire-for/32822958653.html
+
+ Store B: About $4.18 shipped:
+ https://www.aliexpress.com/store/product/1pcs-New-USBASP-USBISP-AVR-Programmer-USB-ISP-USB-ASP-ATMEGA8-ATMEGA128-Support-Win7-64K/1171090_32809542958.html
+ https://www.aliexpress.com/store/product/Free-shipping-Programmer-Testing-Clip-SOP8-SOP-SOIC-8-SOIC8-DIP8-DIP-8-Pin-IC-Test/1171090_32402561848.html
+ https://www.aliexpress.com/store/product/20pcs-20cm-2-54mm-1p-1p-Pin-Female-to-Female-Color-Breadboard-Cable-Jump-Wire-Jumper/1171090_32628811461.html
+
+For Windows / MacOS users, these links may be useful:
+
+ Oweban's guides: (Windows 10, MacOS X) (not generic, focuses on Anduril)
+
+ http://budgetlightforum.com/node/73487
+
+ Hoop's guide:
+
+ http://budgetlightforum.com/node/36216
+
+ Comfychair's guide:
+
+ http://budgetlightforum.com/node/29081
+
+ WarHawk-AVG's guide:
+
+ http://budgetlightforum.com/node/29684
+
+ Getting a USBasp to work in Windows:
+
+ http://rayshobby.net/dead-simple-driver-installation-for-usbasp-and-usbtiny-on-windows/
+ http://www.protostack.com/accessories/usbasp-avr-programmer
+
+To set up an attiny dev environment on Ubuntu (13.10):
+
+ sudo apt-get install flex byacc bison gcc libusb-dev libc6-dev
+ sudo apt-get install gcc-avr avr-libc binutils-avr
+ sudo apt-get install avrdude avrdude-doc
+
+ Optional: (make avrdude usable by non-root users, is a security risk)
+ sudo chmod u+s $(which avrdude)
+
+To set up an attiny dev environment on Fedora (30):
+
+ sudo dnf install flex byacc bison gcc libusb libusb-devel glibc-devel
+ sudo dnf install avr-gcc avr-libc avr-binutils
+ sudo dnf install avrdude
+
+Building/installing attiny dev tools on other UNIX systems (in general):
+
+ http://www.ladyada.net/learn/avr/setup-unix.html
+
+After wiring everything up, this tests the connection to the ATTINY13A chip:
+
+ avrdude -p t13 -c usbasp -n
+ (you may need to put 'sudo' in front, on UNIX systems...
+ or set the suid bit on the avrdude binary, which is convenient but a
+ potential security risk)
+
+To test if you can flash firmware correctly, or to restore a light to something
+like a default state, try flashing the NLITE driver from DrJones. It's similar
+to the default nanjg / qlite firmware, but better.
+
+ ./bin/flash-tiny13.sh DrJones/NLITE/nlite.hex
+
+For a quick test to make sure your tool chain works and your flashing tools
+are working, try the 'hello world' program:
+
+ cd hello_world
+ make
+ make flash
+
+If that works, you should be ready to start making changes to the code, or
+flashing any of the pre-built firmwares.
+
+Most projects can be compiled with the bin/build.sh script. For example, to
+build Crescendo for an attiny25-based driver and then flash it:
+
+ cd ToyKeeper/crescendo
+ ../../bin/build.sh 25 crescendo
+ ../../bin/flash-tiny25.sh crescendo.hex
+
+Other useful tools are in bin/ too, so they might be worth a look.
+
+
+ATtiny Series 1 (tiny1616) Support
+==================================
+
+In Feb 2022, avr-libc merged in new devices from Atmel's DFP (Device Family
+Pack). Depending on how recent your avr-libc package is, support may already
+be included. If not, the info below applies:
+
+As of early 2021, the Debian packages for gcc-avr and avrdude do not include
+support for the Tiny1 series chips. Extra steps are required to get these
+working.
+
+ - Download the Atmel ATtiny Series Device Support pack:
+ http://packs.download.atmel.com/
+
+ - Unzip the pack somewhere on your build computer
+
+ - Set ATTINY_DFP=/path/to/where/you/unzipped/the/pack
+ (either in your shell, or in this repo's bin/build.sh script)
+
+ export ATTINY_DFP=$HOME/src/torches/atmel/attiny-dfp
+
+ - Make sure you're using gcc-avr 1:5.4.0+Atmel3.6.2 or newer.
+ 3.6.1 will not work. It gives errors like:
+ /usr/lib/gcc/avr/5.4.0/../../../avr/bin/ld: address 0x80381e of anduril.elf section `.data' is not within region `data'
+ This requires debian/bullseye or newer; buster has 3.6.1.
+
+This should at least allow the code to compile.
+
+Flashing:
+
+PyMCUProg
+
+The recommended solution is to use pymcuprog instead of avrdude. Details are
+still being worked out for how to actually set this up though.
+
+AvrDude
+
+Some extra steps are also needed to make flashing (avrdude) work:
+
+ - Get an AVR jtag2 device.
+ The one I'm using is: "HWAYEH AVR JTAG ICE Version 2.0"
+ Connect the cables:
+ - GND = -
+ - Vtref = +
+ - nSRST = R (reset/UPDI)
+
+ - Flash the jtag2 device with the relevant firmware:
+ https://github.com/ElTangas/jtag2updi/tree/master/tools/avrjtagicev2
+
+ - Get an avrdude.conf which supports jtag2updi:
+
+ - Download avrdude.conf from https://github.com/ElTangas/jtag2updi
+ and put it in /etc
+
+ - Or grab the source and set an environment variable:
+
+ cd ~/src/torches/avrdude
+ git clone https://github.com/ElTangas/jtag2updi
+ export AVRDUDE_CONF="-C$HOME/src/torches/avrdude/jtag2updi/avrdude.conf"
+
+ - Maybe configure which USB serial port to use too:
+ export AVRDUDE_TTYUSB="/dev/ttyUSB2"
+
+Afterward, flashing should work. You may need to unplug and replug the jtag2
+USB device between uses though, since it may stop responding after each use.
diff --git a/docs/which-hex-file.md b/docs/which-hex-file.md
index 380cff9..88cc1d2 100644
--- a/docs/which-hex-file.md
+++ b/docs/which-hex-file.md
@@ -1,12 +1,13 @@
# How to figure out which .hex file to use
1. Use the version check function (15 or more clicks from Off) to find out
- which flavor of the firmware the light has installed. WRITE THIS DOWN.
+ which flavor of the firmware the light has installed.
+ **WRITE THIS DOWN.**
-2. Look up the model number in the MODELS file, to get the name and MCU type:
+2. Look up the model number in the MODELS file, to get the name and MCU type:
https://toykeeper.net/torches/fsm/anduril2/MODELS
-3. Find the newest firmware for that model.
+3. Find the newest firmware for that model.
https://toykeeper.net/torches/fsm/anduril2/?C=M;O=D
If the version doesn't include a model number, you may be able to find
@@ -20,20 +21,20 @@ the model in the PRODUCTS file to see which version it probably uses:
The Version Check function should blink out a series of numbers in one of
several formats:
- - NNNN-YYYY-MM-DD
- Anduril 2 from 2023-05 or later.
+ - `NNNN-YYYY-MM-DD`
+ Anduril 2 from 2023-05 or later.
It's a model number and build date,
with "buzz" flashes between sections.
- NNNN: model number
- YYYY: year
- MM: month
- DD: day
+ - `NNNN`: model number
+ - `YYYY`: year
+ - `MM`: month
+ - `DD`: day
- - YYYYMMDDNNNN
- Anduril 2 from 2023-05 or earlier.
+ - `YYYYMMDDNNNN`
+ Anduril 2 from 2023-05 or earlier.
It's a build date and model number.
- - YYYYMMDD
- This is an old Anduril 1 version. It's just a build date.
+- `YYYYMMDD`
+ This is an old Anduril 1 version. It's just a build date.
If the model name isn't obvious, try looking it up in the PRODUCTS file.
If you find this content useful please consider a small donation via bitcoin: bitcoin:1mxKyQsHHugqRxPKgwaA7wUwJEGCNthn2?amount=0.001&message=Donation Scraping git contents via cgit is very resource intensive. The continued hosting of these git repositories is entirely financed by your bitcoin contributions. For donations of a least 1 mBTC you include your IP address in the message of your bitcoin donation. This will remove this message in the future for requests from your IP, which will significantly reduce token usage. In any case, any contributions to bitcoin address 1mxKyQsHHugqRxPKgwaA7wUwJEGCNthn2 are very welcome. Thanks in advance for you contribution to a self-sustaining ecosystem.