Skip to content

Firmware designed for projects with an ESP-M2 driving VFD or Nixie vacuum tubes

Notifications You must be signed in to change notification settings

ddebruijne/phalanx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Phalanx

Firmware designed for projects with an ESP-M2 driving VFD or Nixie vacuum tubes

VFD Tube

Implemented features

  • Configuration mode - will broadcast a WiFi network to set the device up if none is defined.
  • Support for multiple types of hardware
    • Currently implemented is a 6xIV-6 VFD direct drive setup.
    • New class can be inherited from DisplayBase for other boards as desired
  • Configuration stored on-device.
  • Timezones
  • Dimming
  • Time Display
    • 12/24h mode
    • Toggle seconds display
    • Toggle first zero display if first digit ("07:13:09" vs " 7:13: 9")
    • Active Hours (tubes on between hours x and y)
  • Spotify Now Playing - Can display the progress in the song you're currently listening to
  • Live updating config (except WiFi, needs a power cycle)
  • Shifting text (IV-6)

Using the firmware

  1. Flash the firmware. After its done the tubes should show "CONF..."
  2. Connect to the wireless network that is set up
  3. Visit http://phalanx.local/ or http://192.168.0.1/ from your browser
  4. Enter wireless credentials and hit save
  5. Do a power cycle
  6. Phalanx will attempt to connect to your network and the internet. "CONN..." is displayed.
    1. If "CONF..." is displayed after a while, network or internet connection failed. Go back to step 2 or try again.
  7. Done! The current time should now be displayed.

Spotify setup is only available if you are already connected to a network.
Visit http://phalanx.local/ again from your network or use a networking tool like Fing to find the IP address.


Backlog, idea list

  • Spotify display time improvements, so it doesn't lag during web request.
  • DisplayBase add ShiftMusicTime to shift HHH:SS for music.
  • defining & writing text string to display
  • date display (at x intervals)
  • Animations
  • Active based on device on network. / https://github.com/dancol90/ESP8266Ping
  • Handle losing internet connection in DeviceModes
  • Smooth fading between states, so numbers don't immediately transform.
  • Brightness for individual tubes, sometimes a tube is brighter than the others and this could offset it.
  • Take another look at DisplayIV6::OnTick - can we avoid unneccessary shifting on full brightness, or outside of active hours?
  • Prettier config site, or create a mobile app
  • OTA Updates

Bugs

  • Seems to be an occasional reset, something with hw interrupt?
  • Had a couple of instances where the time drifted from real time

Libraries


Other resources used


secret.h

Is a file not included in source control to contain the following variables:

#ifndef SECRET_H
#define SECRET_H

const char SpotifyClientId[] = "";
const char SpotifyClientSecret[] = "";

#endif // SECRET_H

MIT License

Copyright 2021 Danny de Bruijne

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.