reference.rst 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. Reference
  2. =========
  3. This page contains the API documentation of the ``flipperzero`` module and some built-in functions.
  4. Vibration
  5. ---------
  6. Control the vibration motor of your Flipper.
  7. .. autofunction:: flipperzero.vibro_set
  8. Light
  9. -----
  10. Control the RGB LED and display backlight of your Flipper.
  11. Constants
  12. ~~~~~~~~~
  13. .. autodata:: flipperzero.LIGHT_RED
  14. .. autodata:: flipperzero.LIGHT_GREEN
  15. .. autodata:: flipperzero.LIGHT_BLUE
  16. .. autodata:: flipperzero.LIGHT_BACKLIGHT
  17. Functions
  18. ~~~~~~~~~
  19. .. autofunction:: flipperzero.light_set
  20. .. autofunction:: flipperzero.light_blink_start
  21. .. autofunction:: flipperzero.light_blink_set_color
  22. .. autofunction:: flipperzero.light_blink_stop
  23. Speaker
  24. -------
  25. Full control over the built-in speaker module.
  26. Musical Notes
  27. ~~~~~~~~~~~~~
  28. ..
  29. for octave in range(9):
  30. for name in ['C', 'CS', 'D', 'DS', 'E', 'F', 'FS', 'G', 'GS', 'A', 'AS', 'B']:
  31. print(f'.. autodata:: flipperzero.SPEAKER_NOTE_{name}{octave}')
  32. .. autodata:: flipperzero.SPEAKER_NOTE_C0
  33. .. autodata:: flipperzero.SPEAKER_NOTE_CS0
  34. .. autodata:: flipperzero.SPEAKER_NOTE_D0
  35. .. autodata:: flipperzero.SPEAKER_NOTE_DS0
  36. .. autodata:: flipperzero.SPEAKER_NOTE_E0
  37. .. autodata:: flipperzero.SPEAKER_NOTE_F0
  38. .. autodata:: flipperzero.SPEAKER_NOTE_FS0
  39. .. autodata:: flipperzero.SPEAKER_NOTE_G0
  40. .. autodata:: flipperzero.SPEAKER_NOTE_GS0
  41. .. autodata:: flipperzero.SPEAKER_NOTE_A0
  42. .. autodata:: flipperzero.SPEAKER_NOTE_AS0
  43. .. autodata:: flipperzero.SPEAKER_NOTE_B0
  44. .. autodata:: flipperzero.SPEAKER_NOTE_C1
  45. .. autodata:: flipperzero.SPEAKER_NOTE_CS1
  46. .. autodata:: flipperzero.SPEAKER_NOTE_D1
  47. .. autodata:: flipperzero.SPEAKER_NOTE_DS1
  48. .. autodata:: flipperzero.SPEAKER_NOTE_E1
  49. .. autodata:: flipperzero.SPEAKER_NOTE_F1
  50. .. autodata:: flipperzero.SPEAKER_NOTE_FS1
  51. .. autodata:: flipperzero.SPEAKER_NOTE_G1
  52. .. autodata:: flipperzero.SPEAKER_NOTE_GS1
  53. .. autodata:: flipperzero.SPEAKER_NOTE_A1
  54. .. autodata:: flipperzero.SPEAKER_NOTE_AS1
  55. .. autodata:: flipperzero.SPEAKER_NOTE_B1
  56. .. autodata:: flipperzero.SPEAKER_NOTE_C2
  57. .. autodata:: flipperzero.SPEAKER_NOTE_CS2
  58. .. autodata:: flipperzero.SPEAKER_NOTE_D2
  59. .. autodata:: flipperzero.SPEAKER_NOTE_DS2
  60. .. autodata:: flipperzero.SPEAKER_NOTE_E2
  61. .. autodata:: flipperzero.SPEAKER_NOTE_F2
  62. .. autodata:: flipperzero.SPEAKER_NOTE_FS2
  63. .. autodata:: flipperzero.SPEAKER_NOTE_G2
  64. .. autodata:: flipperzero.SPEAKER_NOTE_GS2
  65. .. autodata:: flipperzero.SPEAKER_NOTE_A2
  66. .. autodata:: flipperzero.SPEAKER_NOTE_AS2
  67. .. autodata:: flipperzero.SPEAKER_NOTE_B2
  68. .. autodata:: flipperzero.SPEAKER_NOTE_C3
  69. .. autodata:: flipperzero.SPEAKER_NOTE_CS3
  70. .. autodata:: flipperzero.SPEAKER_NOTE_D3
  71. .. autodata:: flipperzero.SPEAKER_NOTE_DS3
  72. .. autodata:: flipperzero.SPEAKER_NOTE_E3
  73. .. autodata:: flipperzero.SPEAKER_NOTE_F3
  74. .. autodata:: flipperzero.SPEAKER_NOTE_FS3
  75. .. autodata:: flipperzero.SPEAKER_NOTE_G3
  76. .. autodata:: flipperzero.SPEAKER_NOTE_GS3
  77. .. autodata:: flipperzero.SPEAKER_NOTE_A3
  78. .. autodata:: flipperzero.SPEAKER_NOTE_AS3
  79. .. autodata:: flipperzero.SPEAKER_NOTE_B3
  80. .. autodata:: flipperzero.SPEAKER_NOTE_C4
  81. .. autodata:: flipperzero.SPEAKER_NOTE_CS4
  82. .. autodata:: flipperzero.SPEAKER_NOTE_D4
  83. .. autodata:: flipperzero.SPEAKER_NOTE_DS4
  84. .. autodata:: flipperzero.SPEAKER_NOTE_E4
  85. .. autodata:: flipperzero.SPEAKER_NOTE_F4
  86. .. autodata:: flipperzero.SPEAKER_NOTE_FS4
  87. .. autodata:: flipperzero.SPEAKER_NOTE_G4
  88. .. autodata:: flipperzero.SPEAKER_NOTE_GS4
  89. .. autodata:: flipperzero.SPEAKER_NOTE_A4
  90. .. autodata:: flipperzero.SPEAKER_NOTE_AS4
  91. .. autodata:: flipperzero.SPEAKER_NOTE_B4
  92. .. autodata:: flipperzero.SPEAKER_NOTE_C5
  93. .. autodata:: flipperzero.SPEAKER_NOTE_CS5
  94. .. autodata:: flipperzero.SPEAKER_NOTE_D5
  95. .. autodata:: flipperzero.SPEAKER_NOTE_DS5
  96. .. autodata:: flipperzero.SPEAKER_NOTE_E5
  97. .. autodata:: flipperzero.SPEAKER_NOTE_F5
  98. .. autodata:: flipperzero.SPEAKER_NOTE_FS5
  99. .. autodata:: flipperzero.SPEAKER_NOTE_G5
  100. .. autodata:: flipperzero.SPEAKER_NOTE_GS5
  101. .. autodata:: flipperzero.SPEAKER_NOTE_A5
  102. .. autodata:: flipperzero.SPEAKER_NOTE_AS5
  103. .. autodata:: flipperzero.SPEAKER_NOTE_B5
  104. .. autodata:: flipperzero.SPEAKER_NOTE_C6
  105. .. autodata:: flipperzero.SPEAKER_NOTE_CS6
  106. .. autodata:: flipperzero.SPEAKER_NOTE_D6
  107. .. autodata:: flipperzero.SPEAKER_NOTE_DS6
  108. .. autodata:: flipperzero.SPEAKER_NOTE_E6
  109. .. autodata:: flipperzero.SPEAKER_NOTE_F6
  110. .. autodata:: flipperzero.SPEAKER_NOTE_FS6
  111. .. autodata:: flipperzero.SPEAKER_NOTE_G6
  112. .. autodata:: flipperzero.SPEAKER_NOTE_GS6
  113. .. autodata:: flipperzero.SPEAKER_NOTE_A6
  114. .. autodata:: flipperzero.SPEAKER_NOTE_AS6
  115. .. autodata:: flipperzero.SPEAKER_NOTE_B6
  116. .. autodata:: flipperzero.SPEAKER_NOTE_C7
  117. .. autodata:: flipperzero.SPEAKER_NOTE_CS7
  118. .. autodata:: flipperzero.SPEAKER_NOTE_D7
  119. .. autodata:: flipperzero.SPEAKER_NOTE_DS7
  120. .. autodata:: flipperzero.SPEAKER_NOTE_E7
  121. .. autodata:: flipperzero.SPEAKER_NOTE_F7
  122. .. autodata:: flipperzero.SPEAKER_NOTE_FS7
  123. .. autodata:: flipperzero.SPEAKER_NOTE_G7
  124. .. autodata:: flipperzero.SPEAKER_NOTE_GS7
  125. .. autodata:: flipperzero.SPEAKER_NOTE_A7
  126. .. autodata:: flipperzero.SPEAKER_NOTE_AS7
  127. .. autodata:: flipperzero.SPEAKER_NOTE_B7
  128. .. autodata:: flipperzero.SPEAKER_NOTE_C8
  129. .. autodata:: flipperzero.SPEAKER_NOTE_CS8
  130. .. autodata:: flipperzero.SPEAKER_NOTE_D8
  131. .. autodata:: flipperzero.SPEAKER_NOTE_DS8
  132. .. autodata:: flipperzero.SPEAKER_NOTE_E8
  133. .. autodata:: flipperzero.SPEAKER_NOTE_F8
  134. .. autodata:: flipperzero.SPEAKER_NOTE_FS8
  135. .. autodata:: flipperzero.SPEAKER_NOTE_G8
  136. .. autodata:: flipperzero.SPEAKER_NOTE_GS8
  137. .. autodata:: flipperzero.SPEAKER_NOTE_A8
  138. .. autodata:: flipperzero.SPEAKER_NOTE_AS8
  139. .. autodata:: flipperzero.SPEAKER_NOTE_B8
  140. Volume
  141. ~~~~~~
  142. .. autodata:: flipperzero.SPEAKER_VOLUME_MIN
  143. .. autodata:: flipperzero.SPEAKER_VOLUME_MAX
  144. Functions
  145. ~~~~~~~~~
  146. .. autofunction:: flipperzero.speaker_start
  147. .. autofunction:: flipperzero.speaker_set_volume
  148. .. autofunction:: flipperzero.speaker_stop
  149. Input
  150. -----
  151. Make your application interactive with full control over the Flipper's hardware buttons.
  152. Buttons
  153. ~~~~~~~
  154. .. autodata:: flipperzero.INPUT_BUTTON_UP
  155. .. autodata:: flipperzero.INPUT_BUTTON_DOWN
  156. .. autodata:: flipperzero.INPUT_BUTTON_RIGHT
  157. .. autodata:: flipperzero.INPUT_BUTTON_LEFT
  158. .. autodata:: flipperzero.INPUT_BUTTON_OK
  159. .. autodata:: flipperzero.INPUT_BUTTON_BACK
  160. Events
  161. ~~~~~~
  162. .. autodata:: flipperzero.INPUT_TYPE_PRESS
  163. .. autodata:: flipperzero.INPUT_TYPE_RELEASE
  164. .. autodata:: flipperzero.INPUT_TYPE_SHORT
  165. .. autodata:: flipperzero.INPUT_TYPE_LONG
  166. .. autodata:: flipperzero.INPUT_TYPE_REPEAT
  167. Functions
  168. ~~~~~~~~~
  169. .. autodecorator:: flipperzero.on_input
  170. Canvas
  171. ------
  172. Write text and draw dots and shapes on the the display.
  173. Basics
  174. ~~~~~~
  175. .. autofunction:: flipperzero.canvas_update
  176. .. autofunction:: flipperzero.canvas_clear
  177. .. autofunction:: flipperzero.canvas_width
  178. .. autofunction:: flipperzero.canvas_height
  179. Colors
  180. ~~~~~~
  181. .. autodata:: flipperzero.COLOR_BLACK
  182. .. autodata:: flipperzero.COLOR_WHITE
  183. .. autofunction:: flipperzero.canvas_set_color
  184. Alignment
  185. ~~~~~~~~~
  186. .. autodata:: flipperzero.ALIGN_BEGIN
  187. .. autodata:: flipperzero.ALIGN_END
  188. .. autodata:: flipperzero.ALIGN_CENTER
  189. .. autofunction:: flipperzero.canvas_set_text_align
  190. Texts
  191. ~~~~~
  192. .. autodata:: flipperzero.FONT_PRIMARY
  193. .. autodata:: flipperzero.FONT_SECONDARY
  194. .. autofunction:: flipperzero.canvas_set_font
  195. .. autofunction:: flipperzero.canvas_set_text
  196. Shapes
  197. ~~~~~~
  198. .. autofunction:: flipperzero.canvas_draw_dot
  199. .. autofunction:: flipperzero.canvas_draw_box
  200. .. autofunction:: flipperzero.canvas_draw_frame
  201. .. autofunction:: flipperzero.canvas_draw_line
  202. .. autofunction:: flipperzero.canvas_draw_circle
  203. .. autofunction:: flipperzero.canvas_draw_disc
  204. Dialog
  205. ------
  206. Display message dialogs on the display for user infos and confirm actions.
  207. .. autofunction:: flipperzero.dialog_message_set_header
  208. .. autofunction:: flipperzero.dialog_message_set_text
  209. .. autofunction:: flipperzero.dialog_message_set_button
  210. .. autofunction:: flipperzero.dialog_message_show
  211. GPIO
  212. ----
  213. Access to the GPIO pins of your Flipper.
  214. Pins
  215. ~~~~
  216. .. autodata:: flipperzero.GPIO_PIN_PC0
  217. .. autodata:: flipperzero.GPIO_PIN_PC1
  218. .. autodata:: flipperzero.GPIO_PIN_PC3
  219. .. autodata:: flipperzero.GPIO_PIN_PB2
  220. .. autodata:: flipperzero.GPIO_PIN_PB3
  221. .. autodata:: flipperzero.GPIO_PIN_PA4
  222. .. autodata:: flipperzero.GPIO_PIN_PA6
  223. .. autodata:: flipperzero.GPIO_PIN_PA7
  224. Modes
  225. ~~~~~
  226. .. autodata:: flipperzero.GPIO_MODE_INPUT
  227. .. autodata:: flipperzero.GPIO_MODE_OUTPUT_PUSH_PULL
  228. .. autodata:: flipperzero.GPIO_MODE_OUTPUT_OPEN_DRAIN
  229. .. autodata:: flipperzero.GPIO_MODE_ANALOG
  230. .. autodata:: flipperzero.GPIO_MODE_INTERRUPT_RISE
  231. .. autodata:: flipperzero.GPIO_MODE_INTERRUPT_FALL
  232. Pull
  233. ~~~~
  234. .. autodata:: flipperzero.GPIO_PULL_NO
  235. .. autodata:: flipperzero.GPIO_PULL_UP
  236. .. autodata:: flipperzero.GPIO_PULL_DOWN
  237. Speed
  238. ~~~~~
  239. .. autodata:: flipperzero.GPIO_SPEED_LOW
  240. .. autodata:: flipperzero.GPIO_SPEED_MEDIUM
  241. .. autodata:: flipperzero.GPIO_SPEED_HIGH
  242. .. autodata:: flipperzero.GPIO_SPEED_VERY_HIGH
  243. Functions
  244. ~~~~~~~~~
  245. .. autofunction:: flipperzero.gpio_init_pin
  246. .. autofunction:: flipperzero.gpio_deinit_pin
  247. .. autofunction:: flipperzero.gpio_set_pin
  248. .. autofunction:: flipperzero.gpio_get_pin
  249. .. autodecorator:: flipperzero.on_gpio
  250. ADC
  251. ---
  252. Read analog values from selected GPIO pins:
  253. * :const:`flipperzero.GPIO_PIN_PC0`
  254. * :const:`flipperzero.GPIO_PIN_PC1`
  255. * :const:`flipperzero.GPIO_PIN_PC3`
  256. * :const:`flipperzero.GPIO_PIN_PA4`
  257. * :const:`flipperzero.GPIO_PIN_PA6`
  258. * :const:`flipperzero.GPIO_PIN_PA7`
  259. The corresponding pin must be initialized in the analog mode:
  260. .. code-block::
  261. import flipperzero as f0
  262. f0.gpio_init_pin(f0.GPIO_PIN_PC0, f0.GPIO_MODE_ANALOG)
  263. This configures the pin as ADC input with the following settings:
  264. * Reference voltage is set to 2.048 V.
  265. * Clock speed is at 64 MHz in synchronous mode.
  266. * Oversample rate is set to 64.
  267. `This default configuration is best for relatively high impedance circuits with slowly or or not changing signals.`
  268. Functions
  269. ~~~~~~~~~
  270. .. autofunction:: flipperzero.adc_read_pin_value
  271. .. autofunction:: flipperzero.adc_read_pin_voltage
  272. Built-In
  273. --------
  274. The functions in this section are `not` part of the ``flipperzero`` module.
  275. They're members of the global namespace instead.
  276. .. py:function:: print(*objects, sep=' ', end='\n', file=None, flush=False) -> None
  277. The standard Python `print <https://docs.python.org/3/library/functions.html#print>`_ function.
  278. :param objects: The objects to print (mostly a single string).
  279. :param sep: The separator to use between the objects.
  280. :param end: The line terminator character to use.
  281. .. versionadded:: 1.0.0
  282. .. attention::
  283. This function prints to the internal log buffer.
  284. Check out the `Flipper Zero docs <https://docs.flipper.net/development/cli#_yZ2E>`_ on how to reveal them in the CLI interface.