No description
- C 86.1%
- Python 11.1%
- Shell 2.5%
- Makefile 0.3%
| calib | ||
| etc | ||
| .gitignore | ||
| d3d.py | ||
| d3d.rc | ||
| d3dinit.rc | ||
| dribble.rc | ||
| gpio.sh | ||
| irena.c | ||
| led.py | ||
| Makefile | ||
| md3.rc | ||
| README.md | ||
Dostel 3D irena Host firmware
This will run on an upboard SBC inside the sensor assembly.
The upboard talks to the irena µC (LPC2148) via UART, implemented in irena.c
Two gpios are used for reset and flash of the µC.
TODO
-
✔️ Complete the
numbers[]array support. -
✔️ Use
arm_reset()fromprint_status()in case of error when available. -
✔️ implement
altera_from_file():- ✔️ ARM firmware: base64 upload of data into
flash_buffer- ❌ for now use
var flash_buffer[i] = val, 128 times - a base64 upload will be more efficient,
like:
var fl[i] = ":base64", 32 bytes each. - ✔️ everything now supports base85(le), which matches our use case to transfer 32-bit words a lot better and is even more efficient. (le) means, we treat the words little endian, opposed to the spec.
- ❌ for now use
- ✔️ convert a
.rbfto a series ofirenacommands.- ✔️send_file(), cron buffer, see commit
3760ef787071e - test if this aslo works for writing the flash filesystem
- ✔️send_file(), cron buffer, see commit
- ✔️ ARM firmware: base64 upload of data into
-
write a python script
d3d.pyto monitor theirena-statusfile:- drive the green LED depending on trigger rate,
- drive the yellow LED for warnings and errors,
- restart everything in case of persistent trouble:
- ✔️ at startup, launch
d3d.rcinto the screen session, - kill and restart it when it becomes unreponsive,
- ✔️ at startup, launch
- kick the watchdog as long as all seems well
- ✔️ write into/touch the file
d3d/irena-livewhich is monitored by the watchdog
- ✔️ write into/touch the file