No description
  • C 86.1%
  • Python 11.1%
  • Shell 2.5%
  • Makefile 0.3%
Find a file
2024-01-17 20:24:29 +01:00
calib add cad image 2023-12-05 18:24:22 +01:00
etc watchdog.md: add section Time 2023-11-28 18:24:38 +01:00
.gitignore more «cmd» help 2023-11-22 23:23:50 +01:00
d3d.py d3d.py, led.py: fixes until it works 2024-01-17 20:24:29 +01:00
d3d.rc d3d.rc: add dribble, call init after reset 2023-11-29 21:31:13 +01:00
d3dinit.rc clock/fudge tests 2023-12-02 16:16:14 +01:00
dribble.rc dribble: no message, response is all we need 2023-11-29 21:30:23 +01:00
gpio.sh add gpio.sh, init script 2023-11-27 16:59:57 +01:00
irena.c irena mprintf(), check_prompt() 2023-12-07 20:29:39 +01:00
led.py d3d.py, led.py: fixes until it works 2024-01-17 20:24:29 +01:00
Makefile fix Version message at startup 2023-11-22 14:36:33 +01:00
md3.rc irena d3d m3d: configs 2023-03-20 13:03:07 +00:00
README.md introduce d3d.py 2023-11-28 10:46:46 +01:00

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() from print_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.
    • ✔️ convert a .rbf to a series of irena commands.
      • ✔️send_file(), cron buffer, see commit 3760ef787071e
      • test if this aslo works for writing the flash filesystem
  • write a python script d3d.py to monitor the irena-status file:

    • 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.rc into the screen session,
      • kill and restart it when it becomes unreponsive,
    • kick the watchdog as long as all seems well
      • ✔️ write into/touch the file d3d/irena-live which is monitored by the watchdog