reference.rst 12 KB

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